先编写独立的PHP脚本并配置composer.json调用;再通过异常处理、环境判断和权限检查确保健壮性;最后输出反馈信息以避免静默失败。

Composer 的 post-install-cmd 脚本在运行 composer install 后自动执行,常用于自动化项目初始化任务。要让这个脚本足够健壮,需要考虑可维护性、错误处理和环境兼容性。
确保脚本可执行且独立
将逻辑封装到外部 PHP 脚本中,而不是直接写在 composer.json 的命令行里。这样更易测试和调试。
- 在项目根目录创建
scripts/post-install.php - 脚本开头使用
#!/usr/bin/env php(可选,但有助于 CLI 识别) - 通过 Composer 配置调用该脚本:
"scripts": {
"post-install-cmd": [
"php scripts/post-install.php"
]
}
处理异常与失败情况
脚本必须能应对权限不足、文件已存在或命令缺失等问题。
- 使用 try-catch 捕获 PHP 异常
- 检查关键目录或文件是否存在,避免重复操作
- 执行 shell 命令时验证返回值
- 输出清晰的错误信息并以非零状态退出
示例片段:
适配不同运行环境
开发、CI 和生产环境行为可能不同,脚本应具备判断能力。
例如:
$env = getenv('APP_ENV') ?: 'development';
if ($env === 'production') {
// 执行缓存预热等操作
}
提供反馈与日志
让用户知道脚本做了什么,尤其是长时间运行的任务。
- 每完成一步输出简短提示(使用
echo或fprintf(STDOUT, "...")) - 避免静默失败
- 可选:记录操作到日志文件,便于排查问题










