post-install-cmd是Composer在install完成后触发的脚本事件,用于执行配置文件生成、缓存清除、数据库迁移等自动化任务。

Composer 的 post-install-cmd 是一个脚本事件,它在 composer install 命令执行完成后自动触发。这个事件常用于运行安装后的自动化任务,比如生成配置文件、清除缓存、执行数据库迁移等。
什么是 post-install-cmd
当使用 composer install 安装或更新项目依赖时,Composer 提供了一系列生命周期事件来支持自定义操作。post-install-cmd 就是其中之一,它在所有包都已安装完毕后运行。
这个命令不会在 composer require 或 composer update 时触发,除非这些命令间接执行了 install 操作(例如首次运行时生成 vendor 目录)。
如何配置 post-install-cmd
你可以在项目的 composer.json 文件中通过 scripts 字段定义该事件:
{
"scripts": {
"post-install-cmd": [
"echo '安装完成!'",
"php artisan clear-compiled",
"php artisan optimize"
]
}
}
也可以调用类中的静态方法:
{
"scripts": {
"post-install-cmd": [
"App\\Console\\Installer::postInstall"
]
}
}
前提是该类能被自动加载(通常放在 src 或通过 autoload 配置注册)。
常见用途示例
-
清理缓存:如 Laravel 中执行
config:clear或route:clear -
生成密钥:新环境部署时自动生成应用密钥(
php artisan key:generate) - 初始化目录权限:确保日志、缓存目录可写
-
运行数据库迁移:在部署流程中自动执行
doctrine:migrations:migrate等
注意事项
该脚本只在 composer install 成功后运行,如果依赖安装失败,则不会触发。
在 CI/CD 或生产环境中使用时需谨慎,避免自动执行危险操作(如清空数据)。建议根据环境判断是否执行敏感命令。
基本上就这些。合理使用 post-install-cmd 能提升项目初始化效率,但应保持脚本轻量且可预测。不复杂但容易忽略。










