【发布时间】:2016-06-12 12:10:24
【问题描述】:
在我目前工作的公司,我们最近开始将我们的代码移动到不同的私有存储库中,这样它就更易于维护和重用(也使以后更容易开源)。
每个 PHP 存储库也是一个 Composer 包,我们可以在需要时在我们的项目中使用它。
目前这种方法存在一个问题:每次我们需要一个依赖于其他包的包时,我们都需要在根 composer.json 中指定这些包。
例如,假设在根composer.json中我们需要两个包company\b和company\c,而包company\c需要另一个包company\d .然后生成的根composer.json 将如下所示:
{
"require": {
"company/b": "dev-master",
"company/c": "dev-master",
"company/d": "dev-master"
},
"autoload": {
"psr-4": {
"Company\\" : "src\Company"
}
},
"repositories": [
{
"type": "vcs",
"url": "git@bitbucket.org:company/b.git"
},
{
"type": "vcs",
"url": "git@bitbucket.org:company/c.git"
},
{
"type": "vcs",
"url": "git@bitbucket.org:company/d.git"
}
]
}
有没有办法避免在根 composer.json 中指定嵌套依赖项,并在每个包中使用 composer.json 中指定的依赖项?
编辑:
我之前所说的一切只对私有包有效。如果一个包,比方说company\b,需要一个可以在Packagist 上找到的公共包,那么可以在company\b composer.json 中指定该依赖项并将其导入。
【问题讨论】:
标签: composer-php