现象:之前有效的Composer补丁在更新依赖后消失,生产问题重新出现。必须确认补丁工具是否执行、目标版本是否改变及hunk是否成功。
| 阶段 | 具体操作 |
|---|---|
| 取证 | 检查composer install/update日志与lock文件,确认补丁插件仍安装并被allow-plugins允许。 |
| 定位 | 用composer show确认目标包版本;对照vendor源码测试patch --dry-run,旧补丁可能因上游代码变化而跳过。 |
| 修复 | 更新补丁基线与校验说明,把补丁文件纳入版本控制;失败必须让CI退出,不能只打印warning。 |
| 复核 | 删除目标vendor包后从干净lock重装,验证实际源码和自动化回归,避免本地残留造成假成功。 |
可执行检查
composer show vendor/packagecomposer why cweagans/composer-patchespatch --dry-run -p1 -d vendor/vendor/package < patches/fix.patchrm -rf vendor/vendor/package && composer install --no-interaction
通过标准:干净CI和生产构建都明确显示补丁成功,目标回归用例通过;上游已修复时安全移除补丁。

