Composer通过require-dev分离开发依赖,并结合环境变量、配置文件及部署命令实现多环境依赖管理,如生产环境使用--no-dev优化加载。

Composer 本身不直接提供多环境依赖管理机制,但可以通过组合使用 composer.json 配置、脚本命令 和 环境条件判断 来实现不同环境加载不同依赖。以下是常见做法:
1. 使用 require-dev 区分开发依赖
Composer 原生支持通过 require 和 require-dev 分离生产与开发依赖。
- require:所有环境都需要的包(如框架核心)
- require-dev:仅开发/测试时需要的工具(如 PHPUnit、PHPStan)
- composer.json(基础依赖)
- composer-dev.json
- composer-prod.json
再运行 composer install
3. 利用脚本动态加载配置
环境变量调整行为:"scripts": {
"pre-install-cmd": "MyScript\\EnvLoader::load"
}
通过 config.platform 指定 PHP 版本或扩展,使 Composer 在不同机器上解析相同依赖:
"config": {
"platform": {
"php": "8.1.0"
}
}
在部署流程中明确指定行为:
- 开发环境:composer install
- 测试环境:composer install --no-interaction
- 生产环境:composer install --no-dev --optimize-autoloader --class-map-authoritative










