0

在我们公司,我们的目标是在所有新项目中使用 Symfony2。我们几乎总是向项目中添加一些附加包,例如 FOSUserBundle 和 KnpMenuBundle。我们想维护一个 composer.json 文件,我们可以简单地将它复制到一个新的项目文件夹,运行composer.phar install(或创建项目,无论哪个可行)并让它安装 symfony2 以及我们想要使用的所有依赖项和其他捆绑包。

换句话说,目标不是必须首先运行php composer.phar create-project symfony/framework-standard-edition path/ 2.2.1,然后编辑 composer.json 以添加/删除包,最后运行 composer.phar update 来安装我们需要的包。

关于如何实现这一目标的任何想法?

4

2 回答 2

1

您可以为您的 composer.json 创建一个 vcs(即 git)存储库,始终签入/提交您的所有更改。

由于作曲家使用 json 并且没有对评论 json 的本机支持,因此拥有一个 composer.json 有点困难,您可以在其中评论/取消评论您定期安装的捆绑包。

但是有两种方法可以实现这一目标。

1) 使用 IgorW 的composer-yaml转换器,它可以将 composer.json 向后转换为 .yml 文件。

2) Seldaek / Jordi Boggiano提到了可以在 composer.json 中实现注释的另一种方式。

{
    "_comment" : {
        "friendsofsymfony/rest-bundle" : "0.12.0",
        "_" : "_"
    },     
    "require": {
        "php": ">=5.3.3",
        "symfony/symfony": "*@dev",

         // ... more stuff here 
     },

     // more stuff here
}

这样,您只需将行从注释移动到要求,就可以轻松地将包复制进出当前安装。(“ _”:“_”条目在 _comment 中的所有捆绑包之后都有一个尾随逗号,并且仍然具有有效的 JSON)。

...但这一切并没有给你一个开箱即用的工作项目。

结论:

大多数捆绑包都需要配置,并且至少都必须在内核中注册才能工作。

只是在您的存储库中有一个 composer.json 不会有帮助。

你可以 fork symfony/symfony-standard ...在你的 repo 中添加所有你想要的更改(注册包,更改 composer.json)并维护这个 repo。

维护这个 repo 需要一些工作,因为分叉的 repo 不会用最新的提交更新自己。如果你想让你的 repo 保持最新,你必须合并来自 symfony/symfony-standard 的最新提交。

但是创建一个自己的绝对是要走的路......只有一个 composer.json 你可以传递,以便在调用“composer install”之后拥有一个包含所有配置和捆绑包的工作项目(目前)是不可能的。

于 2013-05-23T08:59:59.480 回答
1

你可以在 github 上 fork symfony-standard,修改 composer.json,更新 composer.lock,然后从你自己的副本中签出并运行composer install

于 2013-05-23T08:53:29.017 回答