Composer 的 platform 配置用于指定目标环境的 PHP 和扩展版本,确保依赖安装与生产环境一致。通过在 composer.json 中设置 config.platform,如 "php": "8.0.28",可让 Composer 在本地模拟低版本环境,避免因开发与生产环境差异导致的兼容性问题。该配置适用于团队协作、CI/CD 流程及旧项目维护,保障依赖一致性。同时,platform-check 用于运行时环境验证,而命令行可通过 --platform-php 临时覆盖配置,实现灵活控制。
Composer 的
platform
配置项允许你指定项目运行环境中 PHP 版本以及其他扩展的版本,从而影响依赖包的安装选择。这个配置主要用于在不同开发或部署环境下,模拟目标生产环境的 PHP 和扩展版本。
作用说明
当你使用 Composer 安装依赖时,它会根据当前系统的 PHP 版本和已安装的扩展来决定哪些包可以安装。但如果你的开发环境和生产环境不一致(比如本地是 PHP 8.2,服务器是 PHP 8.0),就可能出现兼容性问题。
通过
platform
配置,你可以告诉 Composer “假装”运行在某个特定的 PHP 版本或扩展环境下,确保安装的依赖与目标环境匹配。
配置方式
在项目的
composer.json
文件中添加
config.platform
字段:
这样即使你本地使用的是 PHP 8.2,Composer 也会只安装支持 PHP 8.0 及对应扩展版本的依赖包。
常用场景
团队开发中统一依赖版本,避免因本地 PHP 版本不同导致
频繁变化
CI/CD 流程中模拟生产环境,确保部署时依赖正确
旧项目维护时限制依赖更新到不兼容的新版本
与 platform-check 的区别
注意:
platform
是用于控制依赖解析的,而
是运行时检查脚本是否满足环境要求。两者用途不同,但都涉及环境模拟或验证。
PHP 8.5.5
PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。
下载
命令行覆盖
你也可以在执行命令时临时设置 platform 值:
这适合一次性操作,不需要修改 composer.
json
。
基本上就这些。合理使用 platform 配置能有效避免环境差异带来的依赖问题。
{
"config": {
"platform": {
"php": "8.0.28",
"ext-gd": "8.0.28",
"ext-mbstring": "8.0.28"
}
}
}
composer.lockconfig.platform-checkcomposer install --platform-php=8.0.28