post-autoload-dump在生成自动加载文件后触发,适用于install、update或dump-autoload;post-update-cmd仅在composer update后执行,用于处理依赖变更。

在 Composer 中,post-autoload-dump 和 post-update-cmd 都是可以在 composer.json 中定义的脚本事件(scripts),但它们触发的时机和用途不同。
post-autoload-dump 事件
这个事件在 Composer 重新生成自动加载文件(autoload files)后触发。只要运行了 dump-autoload 命令,无论是通过 install、update 还是手动执行,都会触发它。
常见使用场景:
- 重新生成框架的类映射(如 Laravel 的优化)
- 清理或重建缓存
- 通知开发工具资源已更新
composer dump-autoload,该事件也会被触发。
post-update-cmd 事件
这个事件只在 composer update 命令执行完成后触发。也就是说,只有当依赖包发生了实际更新(版本变更、新增、删除等),Composer 才会运行这个脚本。
典型用途包括:
- 执行与依赖变更相关的初始化脚本
- 提醒用户查看更新日志
- 运行项目级的配置同步任务
-
触发条件不同:
post-update-cmd只在update命令后运行;而post-autoload-dump在每次自动加载文件重建后都运行,比如install、update或dump-autoload。 -
执行频率更高:
post-autoload-dump更常被触发,适合轻量级、安全的自动化操作。 -
用途侧重不同:
post-update-cmd更适合处理“依赖变更”带来的副作用;而post-autoload-dump更偏向于“代码加载机制”的后续处理。
关键区别总结
基本上就这些。如果只是想在每次自动加载重建后做点事,用 post-autoload-dump;如果必须确保仅在依赖更新后才执行,则选 post-update-cmd。










