Umgeschriebener Titel: Behebung des Composer-Fehlers: „Ihre Version von PHP erfüllt nicht die Anforderungen' – Referenz Upgrade von PHP
P粉162773626
2023-08-22 23:14:44
<p>Nachdem ich PHP von 7.4 auf 8.0 aktualisiert habe, habe ich <code>composer update</code> für ein vorhandenes Projekt ausgeführt und die folgende Fehlermeldung erhalten: </p>
<blockquote>
<ul>
<li>acme/some-package[1.0.0, ..., 1.4.0] erfordert PHP ^5.6.4 || Ihre PHP-Version (8.0.3) erfüllt diese Anforderung nicht. </li>
</ul>
</blockquote>
<p>Was bedeutet das und wie kann ich es beheben? </p>
<p><em> (Dies ist eine Referenzantwort, die ein häufig auftretendes Problem abdecken soll. Das Szenario ist nur ein Beispiel. Siehe auch: „Wie interpretiere ich die Fehlerprotokolle von Composer?“) </em>< ;/ p>
如果你正在使用PHP版本8,一些尚未支持的插件可能会导致安装错误。
composer install --ignore-platform-req=php
或者composer install --ignore-platform-reqs
这个选项可以用来设置composer可以忽略的特定要求。
问题
除了他们所需的其他软件包的版本外,Composer软件包还可以指定它们支持的PHP版本。
在解析要安装的软件包的版本时,Composer必须找到与所有约束条件匹配的版本:
composer.json
中为依赖项指定的版本约束条件如果没有满足所有这些约束条件的软件包,您将收到一个错误。
常见的困惑
请注意,PHP版本的版本约束条件遵循与其他Composer约束条件相同的规则。因此,
^7.0
的约束条件表示“7.0以上的任何7.x版本”,不包括8.0。解决方案
要解决这个问题,您需要放宽其中一个约束条件:
acme/some-package
)并在Packagist(或您配置的任何自定义软件包源)上找到它。composer.json
和其他依赖的软件包不排除该新版本。例如,如果您当前依赖于acme/some-package
的版本^1.0
,但PHP 8.0仅从版本2.2.0开始支持,您需要将约束条件更改为^2.2
,并确保您的应用程序仍然兼容。临时解决方法
有时,您非常确定您的应用程序在使用与之前相同的软件包版本时能够正常运行。在这种情况下,您可以在
composer.json
中使用platform
配置变量来假装您仍在使用旧版本。 这只应作为临时解决方法或用于测试,因为这意味着可能会安装在您的新PHP版本上完全无法使用的软件包。例如:
另请参阅“在Composer中覆盖PHP基本依赖项”