使用双横线--分隔可向Composer自定义脚本传参,参数通过$argv数组在PHP脚本中接收,仅run-script支持传参,需确保脚本正确解析参数。

在使用 Composer 的 run-script 命令时,如果想向自定义脚本传递参数,可以通过命令行附加参数的方式实现。Composer 会将这些参数原样传递给实际执行的脚本(比如 PHP 脚本),但需要注意传递方式和接收方式。
1. 在 run-script 后直接添加参数
你可以直接在 run-script 命令后追加参数,这些参数会被传入对应的脚本处理程序中:
composer run-script your-script-name -- arg1 arg2 --option=value注意:必须使用双横线 -- 来分隔 Composer 自身的选项和要传递给脚本的参数。
2. 脚本如何接收参数
如果脚本是一个 PHP 文件,可以通过 $argv 数组获取传入的参数(注意 $argv[0] 是脚本路径,实际参数从 $argv[1] 开始):
// example.php if (isset($argv[1])) { echo "Received argument: " . $argv[1] . "\n"; }假设你在 composer.json 中定义了:
"scripts": { "demo": "php example.php" }运行:
composer run-script demo -- hello world输出将是:
Received argument: hello3. 注意事项
- 必须使用 -- 分隔符,否则参数可能被 Composer 解析为自己的选项。
- 参数不会自动传递给 shell 命令,除非脚本本身支持接收并处理它们。
- 如果你调用的是一个可执行的 PHP 文件或外部命令,确保它能正确解析命令行参数。
- Composer 的事件脚本(如 post-install-cmd)通常不支持手动传参,只有通过 run-script 显式执行的脚本才适合传参。
基本上就这些。只要记得用双横线分隔,并在脚本中通过 $argv 正确读取,就能顺利传递参数。










