如果你正在使用PHP版本8,一些尚未支援的外掛程式可能會(huì)導(dǎo)致安裝錯(cuò)誤。
composer install --ignore-platform-req=php
或 composer install --ignore-platform-reqs
這個(gè)選項(xiàng)可以用來(lái)設(shè)定composer可以忽略的特定要求。
除了他們所需的其他軟體包的版本外,Composer軟體包還可以指定它們支援的PHP版本。
在解析要安裝的軟體包的版本時(shí),Composer必須找到與所有約束條件相符的版本:
composer.json
中為依賴項(xiàng)指定的版本約束條件如果沒(méi)有滿足所有這些約束條件的軟體包,您將收到一個(gè)錯(cuò)誤。
請(qǐng)注意,PHP版本的版本約束條件遵循與其他Composer約束條件相同的規(guī)則。因此,^7.0
的約束條件表示“7.0以上的任何7.x版本”,不包括8.0。
要解決這個(gè)問(wèn)題,您需要放寬其中一個(gè)限制條件:
acme/some-package
)並在Packagist(或您配置的任何自訂軟體套件來(lái)源)上找到它。 composer.json
和其他依賴的軟體包不排除該新版本。例如,如果您目前依賴acme/some-package
的版本^1.0
,但PHP 8.0僅從版本2.2.0開始支持,您需要將約束條件變更為^2.2
,並確保您的應(yīng)用程式仍然相容。 有時(shí),您非常確定您的應(yīng)用程式在使用與之前相同的軟體包版本時(shí)能夠正常運(yùn)作。在這種情況下,您可以在composer.json
中使用platform
設(shè)定變數(shù)來(lái)假裝您仍在使用舊版本。 這只應(yīng)作為臨時(shí)解決方法或用於測(cè)試,因?yàn)檫@意味著可能會(huì)安裝在您的新PHP版本上完全無(wú)法使用的軟體包。
例如:
{ "config": { "platform": { "php": "7.4.999" } } }
另請(qǐng)參閱「在Composer中覆寫PHP基本相依性」