post-root-package-install 事件在根项目包首次安装后触发,用于执行一次性初始化操作。它发生在根包写入 vendor/composer/installed.json 后,仅在该包被首次安装时运行,常见于项目初始化阶段。与 post-install-cmd(每次安装依赖后都触发)和 post-create-project-cmd(仅 create-project 命令后触发)不同,它更侧重根包的安装状态,适用于生成密钥、创建配置文件等轻量级初始化任务,多用于框架或模板项目中。

post-root-package-install 事件在 Composer 安装根项目包之后立即触发。
触发时机说明
这个事件发生在 Composer 完成根项目的包(也就是你当前项目,通常是你执行composer install 或 composer create-project 的那个项目)被写入 vendor/composer/installed.json 之后,但仅当该包是首次安装时才会触发。
具体来说:
- 当你运行
composer install或composer update,并且根项目包被“安装”到 vendor 目录的内部结构中时,就会触发。 - 它通常出现在
composer.json的scripts部分,用于在项目初始化后执行一次性操作。 - 该事件不会在每次更新依赖时都触发,而是与根包的“安装动作”绑定,常见于项目初始化阶段。
典型使用场景
这个事件常用于框架或项目模板中,做一些项目创建后的初始化工作,比如:- 生成应用密钥(如 Laravel 的
php artisan key:generate) - 创建默认配置文件
- 提示用户进行下一步操作
与其他脚本事件的区别
post-root-package-install 是早期事件之一,只关注根包本身的安装状态。它和以下事件不同:-
post-install-cmd:在所有依赖安装完成后触发,每次运行
install都会执行。 -
post-create-project-cmd:仅在使用
create-project命令创建项目后触发,常用于项目模板的初始化。
post-create-project-cmd 中。










