post-root-package-install 事件在项目根包安装后触发,用于执行初始化操作;2. 可通过 composer.json 的 scripts 字段配置内联命令、静态方法或外部脚本;3. 常用于生成配置文件、提示用户操作等场景,仅执行一次,适用于项目创建或首次安装。

当 Composer 安装项目根包(即你项目中的 composer.json 对应的包)完成后,会触发 post-root-package-install 事件。这个事件通常在新建项目、运行 composer install 或 create-project 时被调用。
你可以通过在 composer.json 中定义脚本来处理该事件,实现一些初始化操作,比如生成配置文件、提示用户下一步操作等。
如何配置 post-root-package-install 脚本
在项目的 composer.json 文件中,使用 scripts 字段添加对 post-root-package-install 的监听:
{
"name": "your-vendor/your-project",
"type": "project",
"require": {},
"scripts": {
"post-root-package-install": [
"@php -r \"echo '欢迎使用本项目!\\n';\"",
"SomeScript::welcome"
]
}
}
支持的脚本类型包括:
-
内联命令:如
@php -r "echo ...",适合简单输出或调用 PHP 代码 -
静态方法调用:格式为
ClassName::methodName,类需可自动加载 -
外部脚本:如执行 shell 脚本
sh ./init.sh
实际应用场景
这个事件常用于项目初始化阶段,比如:
- 创建默认配置文件(如
.env示例) - 提示用户修改配置权限
- 清除敏感文件或说明安装完成
例如 Laravel 的 create-project 就利用此事件显示“欢迎使用”的提示信息。
注意事项
该事件只在根包安装后触发一次,不会在后续更新或依赖安装时重复执行。确保脚本幂等或仅适用于初始化场景。
如果脚本是 PHP 类方法,需确保其所在命名空间能被 Composer 自动加载(一般放在 src/ 或已配置的 autoload 路径中)。










