我有一個包含多個模塊的項目。每個模塊都在其內部使用Composer,並且大多獨立於其他模塊。Multiple Composer自動加載器的執行順序
但是,某些模塊共享具有不同版本的依賴關係。這些依賴關係大部分向後兼容,並使用語義版本控制。
我想確保具有最高語義版本的依賴性優先。這將允許所有模塊共享相同的依賴關係,並且這些依賴關係的向後兼容性將確保沒有任何中斷。
我的計劃是通過控制個別自動加載機上的命令require_once
來完成此操作。下面的代碼是一個例子,在實踐中生成。
require_once(__DIR__ . '/moduleA/vendor/autoload.php');
require_once(__DIR__ . '/moduleB/vendor/autoload.php');
require_once(__DIR__ . '/moduleC/vendor/autoload.php');
我正在主要的假設是,如果自動加載磁帶機之前需要另一個,它會優先於後來者。
我發現雖然是對面是真實的。自動加載器最後似乎優先於其他人。
考慮一個類Foo\MyClass
是這些模塊之間共享的依賴項。我期待着上面的加載順序,Foo\MyClass
將從moduleA/vendor/...
中提取。
取而代之的是來自moduleC/vendor/...
。
我可以翻轉我生成的命令來解決這個問題,但我想驗證是否有一個可預測的PHP自動加載器的順序。
是否有PHP執行自動加載器的順序?多個Composer自動加載器是否會以任何方式影響此?
謝謝。
找到了答案,默認情況下,Composer預裝它是自動加載器。 –
我有同樣的情況,今天你使用多個自動加載器還是隻有一個具有所有的依賴關係? –