下面由composer教學欄位為大家講解Composer 不遞歸載入程式碼庫的原因,希望對需要的朋友有幫助!
為什麼 Composer 不遞迴載入程式碼庫?
當你使用自訂庫時,你可能會碰到問題,因為Composer 不會遞歸載入您要求的需求庫,所以你必須重新定義這些庫中所有的composer.json 文件。
在詳細說明為什麼是這樣之前,你需要明白:自訂VCS 和套件儲存庫的主要用途是臨時測試一些東西,或者Fork 一個專案做了一些改進,而且你的Pull Request 還未被Merge,以此類推。你不應該使用它們來追蹤你的私人資源包,關於這點你應該看看 私有的 Packagist 來為你的公司甚至自己處理私人資源包。
這裡有三個途徑可以讓依賴解析器使用你自訂的儲存庫:
● 讀取根包的儲存庫,從定義的儲存庫得到所有的軟體包,解析依賴需求。這是目前的狀態,它工作得很好,除了有 "無法遞歸的載入儲存庫" 這個限制。
● 讀取根包的儲存庫,同時從定義的repos 初始化資源包,遞歸的初始化,根據所有依賴包中定義的repos,以及這些依賴包所依賴的其它包中定義的repos ,等等,然後再解析依賴需求。這可能可以工作,但會嚴重影響初始化的速度,因為每讀取一個 VCS repos 都需要幾秒鐘。它可能最終執行失敗,因為一個包的不同版本,可能來自一個包資源庫中一個相同的包,但來至不同的 dist/source 。這樣有太多的可能會出錯。
● 讀取根包的儲存庫,然後讀取第一級依賴,接著讀取這些依賴包所依賴的其它包,等等,然後再解析依賴需求。這樣聽起來更有效率,但仍有第二種解決方案的問題。因為載入依賴的儲存庫並不像聽起來那麼容易。你需要載入所有可能符合的依賴套件的 repos,而這些套件的定義又可能是互相衝突的。
更多composer使用教學課程,請造訪composer指令使用圖文教學欄位!
以上是為什麼 Composer 不遞歸載入程式碼庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!