gpt4 book ai didi

php - 引用 - 升级 PHP 后 Composer 错误 "Your PHP version does not satisfy requirements"

转载 作者:行者123 更新时间:2023-12-03 21:06:53 25 4
gpt4 key购买 nike

将 PHP 从 7.4 更新到 8.0 后,我在现有项目上运行 composer update,得到如下错误:

  • acme/some-package[1.0.0, ..., 1.4.0] requires php ^5.6.4 || ^7.0 -> your php version (8.0.3) does not satisfy that requirement.

这是什么意思,我该如何解决?
(这是一个引用答案,旨在涵盖一个经常遇到的问题。场景只是一个例子。另见:“ How to explain Composer's error log?”)

最佳答案

问题
除了它们需要的其他包的版本之外,Composer 包还可以指定它们支持的 PHP 版本。
在解析要安装的软件包版本时,Composer 必须找到与所有约束条件匹配的版本:

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

  • 如果没有满足所有这些约束的包,您将收到错误消息。
    常见的困惑
    请注意,PHP 版本的版本约束遵循 the same rules as other composer constraints 。所以 ^7.0的约束意味着“7.0以上的任何7.x版本”,不包括8.0。
    解决方案
    要解决该问题,您需要放宽以下约束之一:
  • 查看错误消息中提到的包(示例中的 acme/some-package)并在 Packagist(或您配置的任何自定义包源)上找到它。
  • 查看是否存在支持您的 PHP 版本的更新版本。
  • 如果没有,您需要找出添加该支持所需的内容。这可能意味着直接检查项目、运行其测试并提交补丁以将其标记为与新版本兼容。
  • 如果(何时)添加了支持,您需要确保您的 composer.json 和您依赖的其他软件包不要排除该新版本。例如,如果您当前依赖 acme/some-package 版本 ^1.0 ,但 PHP 8.0 仅从 2.2.0 版本开始支持,您需要将约束更改为 ^2.2 ,并确保您的应用程序仍然兼容。

  • 临时解决方法
    有时,您非常确定您的应用程序可以在与您之前使用的相同版本的软件包中正常运行。在这种情况下,您可以在 platform 中使用 the composer.json configuration variable 来假装您仍在使用旧版本。 这应该仅作为临时解决方法或用于测试 来完成,因为这意味着将安装可能在您的新 PHP 版本上完全损坏的软件包。
    例如:
    {
    "config": {
    "platform": {
    "php": "7.4.999"
    }
    }
    }
    另见“ Override PHP base dependency in composer

    关于php - 引用 - 升级 PHP 后 Composer 错误 "Your PHP version does not satisfy requirements",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66368196/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com