Umgeschriebener Titel: Behebung des Composer-Fehlers: „Ihre Version von PHP erfüllt nicht die Anforderungen' – Referenz Upgrade von PHP
P粉162773626
P粉162773626 2023-08-22 23:14:44
0
2
588
<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>
P粉162773626
P粉162773626

Antworte allen(2)
P粉670838735

如果你正在使用PHP版本8,一些尚未支持的插件可能会导致安装错误。

composer install --ignore-platform-req=php 或者 composer install --ignore-platform-reqs

这个选项可以用来设置composer可以忽略的特定要求。

P粉289775043

问题

除了他们所需的其他软件包的版本外,Composer软件包还可以指定它们支持的PHP版本。

在解析要安装的软件包的版本时,Composer必须找到与所有约束条件匹配的版本:

  • 您在composer.json中为依赖项指定的版本约束条件
  • 每个软件包为其依赖项指定的版本约束条件
  • 每个软件包支持的PHP版本

如果没有满足所有这些约束条件的软件包,您将收到一个错误。

常见的困惑

请注意,PHP版本的版本约束条件遵循与其他Composer约束条件相同的规则。因此,^7.0的约束条件表示“7.0以上的任何7.x版本”,不包括8.0。

解决方案

要解决这个问题,您需要放宽其中一个约束条件:

  1. 查看错误消息中提到的软件包(例如示例中的acme/some-package)并在Packagist(或您配置的任何自定义软件包源)上找到它。
  2. 查看是否存在支持您的PHP版本的新版本。
  3. 如果没有,您需要找出需要添加该支持的内容。这可能意味着直接检查项目、运行其测试并提交一个补丁来标记它与新版本兼容。
  4. 如果(当)支持已添加,您需要确保您的composer.json和其他依赖的软件包不排除该新版本。例如,如果您当前依赖于acme/some-package的版本^1.0,但PHP 8.0仅从版本2.2.0开始支持,您需要将约束条件更改为^2.2,并确保您的应用程序仍然兼容。

临时解决方法

有时,您非常确定您的应用程序在使用与之前相同的软件包版本时能够正常运行。在这种情况下,您可以在composer.json中使用platform配置变量来假装您仍在使用旧版本。 这只应作为临时解决方法或用于测试,因为这意味着可能会安装在您的新PHP版本上完全无法使用的软件包。

例如:

{
    "config": {
        "platform": {
             "php": "7.4.999"
        }
    }
}

另请参阅“在Composer中覆盖PHP基本依赖项

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage