Composer脚本事件可用于在生命周期执行自定义任务。主要事件包括:安装更新类(pre/post-install-cmd、pre/post-update-cmd)、包操作类(pre/post-package-install/update/uninstall)、自动加载类(pre/post-autoload-dump)、插件类(post-root-package-install、post-create-project-cmd)、脚本流程类(pre-command-run)及自定义命令,通过scripts字段定义,支持PHP脚本与CLI工具,实现自动化构建与环境初始化等功能。

Composer 提供了一系列脚本事件(Script Events),允许你在特定生命周期执行自定义脚本。这些事件可以绑定到项目 composer.json 文件的 "scripts" 字段中,用于运行 PHP 脚本、命令行工具或自动化任务。
常见可用的脚本事件
以下是 Composer 支持的主要脚本事件,按执行时机分类:
1. 安装与更新相关事件这些事件在执行 composer install、update 等命令时触发:
- pre-install-cmd:在安装前执行
- post-install-cmd:在安装完成后执行
- pre-update-cmd:在更新前执行
- post-update-cmd:在更新完成后执行
在包被安装、更新或卸载时触发:
- pre-package-install:包安装前
- post-package-install:包安装后
- pre-package-update:包更新前
- post-package-update:包更新后
- pre-package-uninstall:包卸载前
- post-package-uninstall:包卸载后
在生成自动加载文件时触发:
- pre-autoload-dump:在生成 autoload 文件前
- post-autoload-dump:在生成 autoload 文件后
插件初始化和启用过程中的事件:
- post-root-package-install:根包(你的项目)安装完成后
-
post-create-project-cmd:使用
create-project创建项目后执行,常用于初始化配置、清除占位文件等
在脚本执行的不同阶段触发:
- pre-command-run:在任意 Composer 命令运行前触发
- command-event:命令事件的通用钩子(较少直接使用)
- script-runner:脚本运行器启动时
你可以定义自己的脚本并绑定到任意名称,例如:
"scripts": {
"my-script": [
"@php script.php"
]
}
然后通过 composer run my-script 执行。
基本上就这些常用事件。合理使用它们可以实现自动化构建、环境检查、缓存清理、代码生成等功能。注意事件名称区分大小写,建议参考官方文档确认拼写。










