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

PHP8.1.7下Laravel9执行composer update报phpunit兼容错误

问题说明

当前运行环境为PHP 8.1.7、Composer 2.3.7、Laravel 9,在项目内执行composer update时触发依赖解析报错,报错信息如下:

Problem 1
    - phpunit/phpunit[6.0.0, ..., 6.5.14] require php ^7.0 -> your php version (8.1.7) does not satisfy that requirement.
    - Root composer.json requires phpunit/phpunit ~6.0 -> satisfiable by phpunit/phpunit[6.0.0, ..., 6.5.14].
故障原因

报错核心是版本约束不匹配:

  • PHPUnit 6.0到6.5.14全版本仅支持PHP 7.0及以上的PHP7系列版本,完全不兼容PHP 8.1
  • 项目根目录composer.json中对phpunit/phpunit的版本约束写死为~6.0,Composer只能拉取6.x版本的PHPUnit,和当前PHP版本冲突
  • Laravel 9框架本身最低要求PHPUnit 9.x版本,6.x版本的PHPUnit也无法和Laravel 9正常适配
解决方法

按以下步骤操作即可修复:

  • 打开项目根目录的composer.json文件,找到require-dev节点下的phpunit/phpunit配置项,将原有版本约束"~6.0"修改为"^9.5.10",该版本是Laravel 9官方默认适配的PHPUnit版本,完美支持PHP 8.1
  • 执行命令composer clearcache清理本地Composer的旧依赖缓存
  • 删除项目根目录下的composer.lock文件,清除旧版本的依赖锁定记录
  • 重新执行composer update命令,即可正常完成依赖安装更新

补充提示:如果项目内存在基于PHPUnit 6编写的历史测试用例,升级到PHPUnit 9后可能存在少量语法、断言方法的兼容问题,参照PHPUnit版本变更说明调整对应测试代码即可,Laravel 9自带的测试脚手架已经完全适配PHPUnit 9,后续新写的测试用例不会出现兼容问题。

内容的提问来源于stack exchange,提问作者Esmatullah Hanif

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 23:18:17