composer exec是Composer 2.2+提供的命令,用于便捷执行vendor/bin下的可执行文件。通过composer exec [参数...]可直接运行如phpstan、pint等工具,无需完整路径。支持参数传递(用--分隔)、结合scripts定义别名,并需确保依赖已安装且文件具可执行权限,适用于临时调用或调试场景。

在使用 Composer 的项目中,许多依赖包会自带可执行文件,这些文件通常放在 vendor/bin 目录下。比如 PHPUnit、PHPStan、Laravel Pint 等工具都是如此。为了方便运行这些命令,Composer 提供了 exec 命令来直接调用它们。
什么是 composer exec?
composer exec 是 Composer 2.2+ 版本引入的一个便捷命令,用于在隔离的环境中执行 vendor/bin 下的可执行脚本。它能自动识别当前项目的依赖工具,并安全地运行它们,而无需手动输入完整路径。
如何使用 composer exec 运行 vendor/bin 中的命令?
基本语法如下:
composer exec [选项] [参数...]
例如,如果你安装了 PHPStan,可以这样运行:
- composer exec phpstan analyse src/
这条命令会查找 vendor/bin/phpstan 并执行,同时传入 analyse src/ 作为参数。
函数是一组语句一起执行任务。在MATLAB中,函数定义在单独的文件。文件函数的文件名应该是相同的。 函数操作在自己的工作空间,它也被称为本地工作区,独立的工作区,在 MATLAB 命令提示符访问,这就是所谓的基础工作区的变量。函数可以接受多个输入参数和可能返回多个输出参数 。 MATLAB是MathWorks公司开发的一种编程语言。它最初是一个矩阵的编程语言,使线性代数编程很简单。它可以运行在交互式会话和作为批处理作业。有需要的朋友可以下载看看
再比如,运行 Laravel Pint 格式化代码:
- composer exec pint --test
常见使用场景和技巧
1. 确认某个工具是否可执行
你可以先列出 vendor/bin 下有哪些可用命令:
- ls vendor/bin # Linux/macOS
- dir vendor\bin # Windows
2. 查看工具版本
很多工具支持 --version 参数:
- composer exec phpunit -- --version
注意:这里用了两个短横线(--)来分隔 exec 参数和实际命令参数,避免被 composer 解析。
3. 结合 script 快捷方式使用
你可以在 composer.json 中定义脚本别名:
"scripts": {
"test": "phpunit",
"analyze": "phpstan analyse"
}
然后通过:
- composer test
- composer analyze
这种方式更简洁,适合常用命令。但 composer exec 更灵活,适合临时调试或未配置脚本的情况。
注意事项
• 确保已运行 composer install 或 composer update,否则 vendor/bin 中可能没有对应文件。
• 如果提示“Command not found”,检查该工具是否确实安装且其 bin 文件存在于 vendor/bin。
• 在某些系统上,权限问题可能导致脚本无法执行,请确保 vendor/bin 下的文件有可执行权限。
基本上就这些。composer exec 让你在项目中运行本地安装的 CLI 工具变得简单又安全。不复杂但容易忽略。









