當(dāng)你使用自定義庫(kù)時(shí),你可能會(huì)碰到問題,因?yàn)?Composer 不會(huì)遞歸加載你要求的儲(chǔ)存庫(kù),所以你必須修改這些儲(chǔ)存庫(kù)中所有的 composer.json
文件。
在詳細(xì)說明為什么是這樣之前,你需要明白:使用自定義 VCS & 包儲(chǔ)存庫(kù)去嘗試某些事情,或者使用你 fork 的一個(gè)分支,直到你的 pull request 被合并,等等。你不應(yīng)該使用它們來跟蹤你的私人資源包,關(guān)于這點(diǎn)你應(yīng)該看看 setting up Satis 來為你的公司甚至自己處理私人資源包。
這里有三個(gè)途徑可以使依賴解析器使用你自定義的儲(chǔ)存庫(kù):
讀取根包的存儲(chǔ)庫(kù),從定義的存儲(chǔ)庫(kù)得到所有的軟件包,解析依賴需求。這是目前的狀態(tài),它工作得很好,除了有“無法遞歸的加載儲(chǔ)存庫(kù)”這個(gè)限制。
讀取根包的存儲(chǔ)庫(kù),同時(shí)從定義的 repos 初始化資源包,遞歸的初始化,根據(jù)所有依賴包中定義的 repos,以及這些依賴包所依賴的其它包中定義的 repos,等等,然后再解析依賴需求。這可能可以工作,但會(huì)嚴(yán)重影響初始化的速度,因?yàn)槊孔x取一個(gè) VCS repos 都需要幾秒鐘。它可能最終執(zhí)行失敗,因?yàn)橐粋€(gè)包的不同版本,可能來自一個(gè)包資源庫(kù)中一個(gè)相同的包,但來至不同的 dist/source 。這樣有太多的可能會(huì)出錯(cuò)。
更多建議: