PHP运行时如何判断Composer install是否使用--no-dev参数
判断Composer install是否带有--no-dev参数的方法
在PHP运行时,你可以通过以下两种可靠方式判断:
方法1:检查环境变量COMPOSER_DEV_MODE
Composer执行install或update时会自动设置COMPOSER_DEV_MODE环境变量:
- 未加
--no-dev时,变量值为1 - 带有
--no-dev时,变量值为0
PHP中直接读取该变量即可判断:
$isNoDevEnabled = getenv('COMPOSER_DEV_MODE') === '0'; if ($isNoDevEnabled) { // 对应--no-dev执行时的逻辑 } else { // 正常安装(包含dev依赖)的逻辑 }
方法2:通过Composer Config类获取状态
如果项目已通过Composer加载了自动依赖,可以调用Composer内置的配置类获取开发模式状态:
require __DIR__ . '/vendor/autoload.php'; use Composer\Factory; $composer = Factory::create(); $isNoDevEnabled = !$composer->getConfig()->get('dev-mode'); if ($isNoDevEnabled) { // --no-dev已启用的处理逻辑 }
注意:此方法需要确保Composer的核心类已被自动加载,即项目已完成过Composer安装操作(无论是否带--no-dev)。
内容的提问来源于stack exchange,提问作者robsch
相关产品推荐
相关产品推荐

