2014-09-01 133 views
1

我正在使用guzzlehttp/guzzle的項目。作曲家:重寫PHP版本的傳遞依賴關係

雖然我們的生產服務器上使用PHP 5.4,我們的構建盒子仍然在5.3,所以當它運行composer install,我們看到了以下錯誤:

guzzlehttp/guzzle 4.2.x-dev requires php >=5.4.0 -> no matching package found. 

有什麼辦法來覆蓋這一點?我已經要求php 5.3「作爲」5.4.0,但它後來抱怨找不到'php'包。

似乎需要一個PHP版本是一個包的特例,並且不允許爲正常包提供相同的覆蓋。有沒有解決的辦法?

回答

0

我不知道解決這個問題的方法。

問題是:Composer應該如何知道應該執行代碼的PHP,而不是PHP只是抓住它的依賴關係。目前無法覆蓋PHP版本或已安裝的擴展。

這個覆蓋應該放在哪裏?將它放入composer.json是錯誤的,因爲這會改變檢測到的PHP版本Composer的假設,並且會導致衝突。它可能應該是用於覆蓋假定的PHP版本的本地Composer實例的某種配置。

我建議您將構建箱升級到5.4或安裝僅用於Composer的PHP 5.4的其他版本。

如果您不使用應該運行代碼的PHP版本,您將如何在測試執行期間檢測到該構建框上的版本衝突?