2014-10-02 111 views
46

我們使用PHPCI和作曲家。運行PHPCI的服務器位於PHP 5.3上。跳過作曲家PHP要求

對於一個項目,我們使用composer添加了Facebook PHP SDK。它需要PHP 5.4。 作曲家被PHPCI觸發並執行。但由於CI服務器剛剛PHP 5.3作曲家失敗,出現錯誤消息:

facebook/php-sdk-v4 4.0.9 requires php >=5.4.0 -> no matching package found. 

這讓無法在PHPCI我的身材,當然。

有沒有可能跳過這個要求?也許通過添加一個選項composer.json?或者爲composer.phar調用一個參數?

回答

121

我發現的選項:

composer install --ignore-platform-reqs 

忽略平臺的要求(PHP &外部 - 包)。


編輯:可以跳過平臺檢查與此,但作曲家將獲取基於給定的PHP版本,那麼包。所以,當你需要作曲家期間depedency解決也模仿PHP版本,你可以(!而且應該)在您的composer.json使用:

{ 
    "config": { 
     "platform": { 
      "php": "5.6.6" 
     } 
    } 
} 

https://getcomposer.org/doc/06-config.md#platform

+0

我如何忽略私人存儲庫。一些包需要私人回購。 – dungphanxuan 2017-12-23 02:16:35

+0

你不能。您需要確保由作曲者執行的Git可以訪問專用回購站,通常使用ssh密鑰。您還可以將auth憑證存儲在composer的全局配置文件中,以用於私人服務器。但只要一個包**是必需的**你不能忽視它。這隻適用於平臺要求。 – Armin 2017-12-25 01:23:01

0

如果有什麼需要特定版本的PHP,它將不會運行在較低版本的PHP中。繞過PHP要求時,您仍然會收到錯誤。

順便說一句,PHP 5.3不再維護,我強烈建議更新PHPCI服務器。

+0

首先,我想知道如何繞過PHP要求。 – Armin 2014-10-06 09:02:56

+0

你不能,你不會,因爲代碼將無法在較低的PHP版本 – 2014-10-06 09:06:09

+1

它會。只有CI服務器獲得了低PHP版本。包含facebook SDK的服務器運行在PHP 5.4上。它只是關於ci服務器,它將所有內容都打包成一個很好的可部署zip文件。 – Armin 2014-10-06 13:34:02