config.platform用于指定目标生产环境的PHP及扩展版本,确保开发与生产依赖一致。通过在composer.json中设置php和扩展版本,如"php": "8.1.0",可让Composer在本地高版本PHP下仍选择兼容生产环境的依赖包。适用于多环境一致性、防止安装过高版本扩展、CI/CD中模拟生产场景。该配置仅影响依赖解析,不改变实际运行环境,建议团队统一提交该配置以避免“在我机器上能跑”的问题。

Composer 的 config.platform 配置用于“模拟”不同的 PHP 环境,特别是在开发环境中指定目标生产环境的 PHP 版本及其他扩展版本,从而确保依赖安装与生产一致。
作用:锁定平台依赖版本
当你在本地使用较新的 PHP 版本(如 8.3),而生产环境使用的是 PHP 8.1 时,直接运行 composer install 可能会安装仅支持 8.3 的扩展版本,导致上线后出错。
通过 config.platform,你可以告诉 Composer:“假装当前环境是 PHP 8.1”,这样它会选择兼容该版本的依赖包。
基本配置方式
在 composer.json 中添加:
{
"config": {
"platform": {
"php": "8.1.0",
"ext-gd": "8.1.0",
"ext-redis": "5.3.6"
}
}
}
这样即使你在 PHP 8.3 下运行 Composer,它也会按 PHP 8.1 的环境解析依赖。
常见使用场景
- 多环境一致性:开发用 macOS,生产是 Linux,PHP 版本不同,通过 platform 统一依赖选择标准。
- 防止过高版本依赖:避免自动安装只支持 PHP 8.2+ 的库,即便本地是 8.3。
- CI/CD 流水线中模拟生产:在 GitHub Actions 或 GitLab CI 中设置 platform 值,确保构建结果与线上一致。
注意事项
-
platform设置不会改变实际运行环境,只是影响依赖决策。 - 若未设置,Composer 默认使用当前系统的 PHP 和扩展版本。
- 可被命令行参数覆盖,例如:
composer install --ignore-platform-reqs(不推荐用于部署)。 - 团队协作时建议提交此配置,保证所有人安装相同版本依赖。
config.platform 能有效减少“在我机器上能跑”的问题。










