在我目前工作的公司,我們最近開始將我們的代碼移動到不同的私有存儲庫,以便它更易於維護和重用(並且使它更易於開源後來)。嵌套的依賴關係和作曲家的私人存儲庫
每個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": "[email protected]:company/b.git"
},
{
"type": "vcs",
"url": "[email protected]:company/c.git"
},
{
"type": "vcs",
"url": "[email protected]:company/d.git"
}
]
}
有沒有一種方法,以避免在根composer.json指定嵌套依賴和使用,在每個包的composer.json指定的人?
編輯: 我以前說過的一切只對私人包有效。如果一個軟件包(比如company\b
)需要一個可以在Packagist上找到的公共軟件包,那麼可以在company\b
composer.json中指定它的依賴關係,並且它將被導入。
將您的答案標記爲正確的額外資訊。幸運的是,我們已經在內部使用版本控制,因此肯定會給Satis一個嘗試。 – siannone