composer check-platform-reqs 是 Composer 3.0+ 用于校验当前 PHP 环境是否满足 composer.json 中 platform 及依赖的 PHP 版本、扩展等约束的静态检查命令,不安装包,仅做环境兼容性验证。
是 Composer 3.0+ 引入的官方命令,用于检查当前 PHP 环境是否满足项目
中声明的
或依赖包的
约束(比如
、
)。它不安装任何包,只做静态环境校验——这是它和
的关键区别。
什么时候必须用
当你遇到以下情况时,这个命令能快速定位问题根源:
CI/CD 流水线里
失败,但报错模糊(比如 “Your requirements could not be resolved”),而你怀疑是 PHP 版本或扩展缺失
团队协作中,有人本地能装,有人不能,想快速比对平台兼容性
准备升级 PHP 版本前,提前验证现有
是否兼容新环境
提示 “Package x requires ext-y, but it is not installed”,但你不确定是没启用还是根本没编译进 PHP
的默认行为和常用选项
它默认只检查
顶层的
和
,不递归检查已锁版本(
)里的依赖约束。常见组合:
基础检查:
—— 输出所有未满足项,状态码为 1 表示失败
只看失败项:
—— 隐藏通过项,仅打印缺失扩展或版本不匹配项
包含已安装的包约束:
—— 会读取
,检查所有已锁定依赖的平台要求(更严格,也更慢)
指定 PHP 版本模拟:
—— 不依赖当前
,适合测试未来环境
和
的核心区别
关注 Composer 自身配置、网络、权限等运行时健康状况;
只聚焦「PHP 解释器 + 扩展 + 版本号」是否满足项目声明的需求。两者互补,但目的不同:
Composer 2.9.6
Composer 2.9.6 是 PHP 生态中高效、稳定的依赖管理工具。此版本在性能与兼容性上进一步优化,改进了依赖解析算法,提升大型项目中的安装与更新速度。它支持并行下载任务,显著减少等待时间,并增强了与私有仓库及镜像源的交互稳定性。同时修复了多项命令行交互与内存使用相关的缺陷,确保在复杂依赖关系下依然可靠运行。无论是新项目初始化还是现有系统维护,Composer 2.9.6 都能为开发者提供流畅、精准的依赖管理体验。
下载
报 “The php.ini used by your command-line PHP is: /etc/php/8.1/cli/php.ini” → 是在告诉你 PHP 配置位置
报 “ext-gd: missing (required by vendor/symfony/console)” → 是在告诉你缺扩展,且谁依赖它
如果你改过
(比如强制设
),
会按这个假定值校验,而非真实 PHP 版本
容易被忽略的细节
这个命令不会检测扩展的**功能子集**。例如:
已加载,但 PHP 编译时没带
,导致 curl 不支持 HTTPS ——
无法发现。它只认
返回 true 就算通过。
另外,某些扩展(如
)在 PHP 7.2+ 是内建的,但 Windows 下可能仍需手动开启
;命令只会检查是否加载,不区分“内建”还是“DLL”。如果扩展名拼写错误(比如写成
而非
),也会误报为缺失。
composer check-platform-reqscomposer.jsonplatformrequire"php": "^8.1""ext-gd": "*"composer installcheck-platform-reqscomposer installcomposer.jsoncomposer updatecheck-platform-reqscomposer.jsonrequireconfig.platformcomposer.lockcomposer check-platform-reqscomposer check-platform-reqs --fail-on-missingcomposer check-platform-reqs --with-dependenciescomposer.lockcomposer check-platform-reqs --platform=php:8.2.10php -vcomposer diagnosediagnosecheck-platform-reqsdiagnosecheck-platform-reqsconfig.platform"php": "7.4"check-platform-reqsext-curl--with-opensslcheck-platform-reqsextension_loaded('curl')ext-sodiumphp_sodium.dllsodiumsodium