
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 的环境解析依赖。
platform 设置不会改变实际运行环境,只是影响依赖决策。composer install --ignore-platform-reqs(不推荐用于部署)。config.platform 能有效减少“在我机器上能跑”的问题。