答案:在composer.json的scripts中定义脚本,如"my-script": ["php my-custom-script.php"],通过composer run my-script执行,支持预设钩子和自定义命令,实现安装后生成配置或清除缓存等自动化操作。

在 Composer 中运行自定义脚本非常实用,比如在安装依赖后自动执行某些操作(如生成配置、清除缓存等)。你只需在 composer.json 文件中定义脚本,并通过命令行触发即可。
1. 定义自定义脚本
打开项目根目录下的 composer.json 文件,在 scripts 字段中添加你的自定义命令。例如:
{
"scripts": {
"post-install-cmd": [
"echo '依赖已安装!'"
],
"post-update-cmd": [
"php generate-config.php"
],
"my-script": [
"php my-custom-script.php"
]
}
}
上面的例子中,my-script 是一个自定义的脚本名称,你可以用任何你喜欢的名字命名。
2. 运行自定义脚本
定义好脚本后,可以通过以下命令手动执行:
composer run my-script
这条命令会执行你在 my-script 中定义的所有命令。注意:不需要加 .php 后缀或文件路径错误,确保脚本文件存在且可执行。
3. 脚本类型说明
Composer 支持多种脚本钩子,常见的包括:
- pre-install-cmd:在 install 执行前运行
- post-install-cmd:install 完成后运行
- pre-update-cmd:update 前运行
- post-update-cmd:update 后运行
- 自定义名称(如 my-script):需通过 composer run 脚本名 手动调用
4. 注意事项
编写和运行脚本时请注意以下几点:
- 脚本命令必须是系统可执行的,比如 PHP 脚本需使用 php 开头
- 确保脚本文件存在于项目中,并有正确的权限
- 多个命令可以用数组形式列出,按顺序执行
- 脚本支持调用类中的静态方法(需自动加载),格式为:ClassName::methodName
基本上就这些。只要配置正确,Composer 的脚本功能可以大大简化项目自动化流程。










