首頁  >  文章  >  開發工具  >  為什麼 Composer 不遞歸載入程式碼庫?

為什麼 Composer 不遞歸載入程式碼庫?

藏色散人
藏色散人原創
2019-08-14 14:26:321904瀏覽

下面由composer教學欄位為大家講解Composer 不遞歸載入程式碼庫的原因,希望對需要的朋友有幫助!

為什麼 Composer 不遞歸載入程式碼庫?

為什麼 Composer 不遞迴載入程式碼庫?

當你使用自訂庫時,你可能會碰到問題,因為Composer 不會遞歸載入您要求的需求庫,所以你必須重新定義這些庫中所有的composer.json 文件。

在詳細說明為什麼是這樣之前,你需要明白:自訂VCS 和套件儲存庫的主要用途是臨時測試一些東西,或者Fork 一個專案做了一些改進,而且你的Pull Request 還未被Merge,以此類推。你不應該使用它們來追蹤你的私人資源包,關於這點你應該看看  私有的 Packagist 來為你的公司甚至自己處理私人資源包。

這裡有三個途徑可以讓依賴解析器使用你自訂的儲存庫:

● 讀取根包的儲存庫,從定義的儲存庫得到所有的軟體包,解析依賴需求。這是目前的狀態,它工作得很好,除了有 "無法遞歸的載入儲存庫" 這個限制。

● 讀取根包的儲存庫,同時從定義的repos 初始化資源包,遞歸的初始化,根據所有依賴包中定義的repos,以及這些依賴包所依賴的其它包中定義的repos ,等等,然後再解析依賴需求。這可能可以工作,但會嚴重影響初始化的速度,因為每讀取一個 VCS repos 都需要幾秒鐘。它可能最終執行失敗,因為一個包的不同版本,可能來自一個包資源庫中一個相同的包,但來至不同的 dist/source 。這樣有太多的可能會出錯。

● 讀取根包的儲存庫,然後讀取第一級依賴,接著讀取這些依賴包所依賴的其它包,等等,然後再解析依賴需求。這樣聽起來更有效率,但仍有第二種解決方案的問題。因為載入依賴的儲存庫並不像聽起來那麼容易。你需要載入所有可能符合的依賴套件的 repos,而這些套件的定義又可能是互相衝突的。

更多composer使用教學課程,請造訪composer指令使用圖文教學欄位!

以上是為什麼 Composer 不遞歸載入程式碼庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn