post-install-cmd在composer install后触发,用于依赖安装后的初始化操作;post-update-cmd在composer update后触发,用于依赖更新后的处理任务。
区别。
post-install-cmd 何时触发
这个事件在运行 composer install 命令后被触发。无论 composer.lock 文件是否存在,只要完成了依赖安装,就会执行。
常见情况包括:
- 首次克隆项目后执行
composer install - 已有
composer.lock文件,安装锁定版本的依赖 - 没有进行依赖版本更新,仅安装已定义的包
适合用于初始化操作,比如生成配置文件、清除缓存、创建目录等。
post-update-cmd 何时触发
该事件只在运行 composer update 命令后触发。这个命令会重新解析 composer.json 中的版本约束,并可能升级依赖包。
典型场景有:
- 手动执行
composer update更新所有或部分包 - 依赖版本发生变化,
composer.lock被重新生成
常用于需要在依赖变更后执行的操作,例如重新生成类映射、刷新缓存、执行数据库迁移等。
实际区别总结
关键在于执行的 Composer 命令不同:
-
install→ 使用composer.lock安装确定版本,触发 post-install-cmd -
update→ 重新解析依赖并可能升级,触发 post-update-cmd
如果想在两种情况下都执行某个脚本,可以将命令同时注册到这两个事件中,或者创建一个共享函数供两者调用。
基本上就这些。根据你的部署或开发流程选择合适的钩子即可。