You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Github Actions的super-linter报Composer PHP版本不兼容错误如何解决?

报错原因

虽然你的根composer.json声明了支持PHP ^7.3||^8.0,但触发报错的核心原因是你的依赖链中存在更高的PHP版本要求:

  • 你依赖的psalm/plugin-phpunit@^0.16.1本身的composer配置要求PHP >= 8.0,根声明的版本范围无法覆盖子依赖的强制限制
  • 如果你是在本地PHP >=8.0的环境下执行composer install生成了vendor目录并提交到了仓库,Composer会根据你本地的PHP版本生成vendor/composer/platform_check.php校验规则,到CI环境运行在PHP7.4下时就会触发版本校验失败
排查步骤
  • 执行命令composer why-not php 7.4,可以直接输出所有不支持PHP7.4的依赖包及对应的版本限制
  • 打开composer.lock文件,搜索php关键字查看各依赖包的PHP版本约束,确认是哪个包强制要求>=8.0
  • 执行命令php -v确认本地生成vendor时使用的PHP版本,验证是否和CI运行环境版本不一致
解决方案

根据你的业务需求选择对应方案即可:

  1. 如果你需要保留PHP7.4兼容性
    • 降低依赖版本:将psalm/plugin-phpunit的版本约束改为^0.15.0,该版本支持PHP7.3及以上
    • 锁定平台版本:在composer.json的config字段下添加配置:
      "config": {
          "platform": {
              "php": "7.4.19"
          }
      }
      
      后续执行composer update时会强制模拟PHP7.4环境筛选兼容的依赖版本
    • 不要提交vendor目录到仓库,在CI的super-linter执行前增加composer install --ignore-platform-req=php步骤,在CI环境重新安装适配当前PHP版本的依赖
  2. 如果你不需要兼容PHP7.4
    • 修改super-linter的运行配置,指定使用PHP8.0及以上版本运行,即可匹配现有依赖的版本要求

内容的提问来源于stack exchange,提问作者Parsa Nikoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 19:27:00