Composer 的 scripts 是最直接的别名实现方式,通过 composer.json 的 scripts 段定义项目级命令(如 “du”: “composer update”),用 composer run du 执行,支持跨平台、组合调用(@xxx)和多命令数组。
Composer 的 scripts 是最直接的别名实现方式
Composer 本身不支持 Unix 风格的 alias(如 alias cdu="composer update"),但通过 scripts 段可定义项目级命令别名,且能跨平台生效。这些命令会自动被 composer run(或旧版 composer run-script)识别。
在 composer.json 中添加:
"scripts": {
"du": "composer update",
"di": "composer install",
"dc": "composer clear-cache",
"test": "phpunit --colors=always",
"dev": [
"@du",
"@dc"
]
}
之后执行 composer run du 就等价于 composer update。注意:从 Composer 2.2 开始推荐用 composer run ,旧版需用 composer run-script 。
-
@xxx表示复用已有 script,适合组合操作(如"dev"同时跑更新和清缓存) - 脚本值可以是字符串(单条命令)或数组(多条顺序执行)
- 所有 script 命令默认在项目根目录执行,无需
cd - 若脚本含空格或特殊字符,建议用单引号包裹整个命令(如
'php -v | head -n1')
用 bin 目录 + 可执行文件模拟全局别名
当需要真正像 shell alias 一样输入 cdu 就触发 composer update,可在项目根目录建 bin/ 并放可执行脚本,再把 bin/ 加入 $PATH(仅限当前项目生效)。
例如创建 bin/cdu:
#!/usr/bin/env bash cd "$(dirname "$0")/.." && composer update "$@"
然后 chmod +x bin/cdu,再运行 bin/cdu 即可。若想全局可用,需将 $(pwd)/bin 临时加到 PATH(如 export PATH="$(pwd)/bin:$PATH")。