Symfony2 - 创建自己的供应商捆绑 - 项目和git策略 [英] Symfony2 - creating own vendor bundle - project and git strategy

查看:101
本文介绍了Symfony2 - 创建自己的供应商捆绑 - 项目和git策略的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们正在考虑创建自己的常用的包,用于实体映射和服务,以便在几个单独的应用程序中使用。捆绑应该很容易修改,运行,包含和测试。我了解构建捆绑软件的最佳实践,但我不知道我们应该如何创建 common git 策略以用于开发。 / code>捆绑为一个整体项目并将整个存储库提交到我们的git服务器,还是仅启动对 common 其内容?我在 github 中看到了这种方法,但我不知道如何轻松和舒适地开发捆绑包。

解决方案

创建一个新的空symfony项目



  php composer.phar create-项目symfony / framework-standard-edition demo / 2.4.1 
cd demo



生成一个新捆绑



(例如 src / Company / DemoBundle

  php app / console generate:bundle 
cd src / Company / DemoBundle /



将您的github存储库放入 src / Company / DemoBundle



  git init 
touch README.md
git add。
git commit -minitial commit
git remote add origin https://github.com/YourAccount/DemoBundle.git
git push -u origin master



添加composer.json文件



src /Company/DemoBundle/composer.json

  {
name:公司/ demobundle,
description:演示包,
type:symfony-bundle,
authors:[{
name :demo,
email:demo@company.com
}],
keywords:[
demo bundle
],
许可证:[
MIT
],
要求:{
},
自动加载:{
psr-0:{
Company \\DemoBundle:
}
},
target-dir:Company / DemoBundle,
repositories:[{
}],
extra:{
branch-alias:{
dev-master:some_version-dev
}




$ b $现在你有了你的包的基础结构



在另一个项目中使用它



composer.json:

  [...] 
require:{
[...]
company / demobundle:dev-master
},
repositories:[{
type:vcs,
url:https://github.com/Company/DemoBundle.git
}],
[...]

p>

  curl -sS https://getcomposer.org/installer | php 
php composer.phar更新公司/ demobundle

app / AppKernel:

  new Company \DemoBundle\CompanyDemoBundle(),



处理它




  • 您可以将DemoBundle复制到 src /公司文件夹,然后手动安装它

  • 可以使用符号链接



  • < h1>结论

    您可以在第一个项目中开发和测试您的包,并在第二个项目中将它与github和composer结合使用。


    We're considering creating our own common bundle for entity mapping and services for use within few separate apps. A bundle should be easy to modify, run, include and test. I know about Best Practices for Structuring Bundles, but I don't know what git strategy to use when it comes to development.

    Should we create common bundle as a whole project and commit whole repository to our git server, or is it better to start source control only for root of common bundle and push only its contents? I see this approach in bundles available on github, but I don't know easy and comfortable way to develop bundles that way.

    解决方案

    Create a new empty symfony project

    php composer.phar create-project symfony/framework-standard-edition demo/ 2.4.1
    cd demo
    

    Generate a new bundle

    (for example src/Company/DemoBundle)

    php app/console generate:bundle
    cd src/Company/DemoBundle/
    

    Init your github repository in src/Company/DemoBundle

    git init
    touch README.md
    git add .
    git commit -m "initial commit"
    git remote add origin https://github.com/YourAccount/DemoBundle.git
    git push -u origin master
    

    Add a composer.json file

    src/Company/DemoBundle/composer.json:

    {
        "name" : "company/demobundle",
        "description" : "A demo bundle",
        "type" : "symfony-bundle",
        "authors" : [{
            "name" : "demo",
            "email" : "demo@company.com"
        }],
        "keywords" : [
            "demo bundle"
        ],
        "license" : [
            "MIT"
        ],
        "require" : {
        },
        "autoload" : {
            "psr-0" : {
                "Company\\DemoBundle" : ""
            }
        },
        "target-dir" : "Company/DemoBundle",
        "repositories" : [{
        }],
        "extra" : {
        "branch-alias" : {
                "dev-master" : "some_version-dev"
            }
        }
    }
    

    Now you have the base structure of your bundle

    Use it in another project

    composer.json:

        [...]
        "require" : {
            [...]
            "company/demobundle" : "dev-master"
        },
        "repositories" : [{
            "type" : "vcs",
            "url" : "https://github.com/Company/DemoBundle.git"
        }],
        [...]
    

    Do:

    curl -sS https://getcomposer.org/installer | php
    php composer.phar update company/demobundle
    

    app/AppKernel:

    new Company\DemoBundle\CompanyDemoBundle(),
    

    Work on it

    • You can clone your DemoBundle in the src/Company folder, then manually install it
    • You can use symlink

    Conclusion

    You can develop and test your bundle in your first project and use it with github and composer in your second project.

    这篇关于Symfony2 - 创建自己的供应商捆绑 - 项目和git策略的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆