composer-patches插件支持为依赖包打补丁而不修改源码或fork仓库,需安装插件、准备标准.patch文件并配置composer.json的extra.patches字段,安装时自动应用并可verbose验证。

使用 composer-patches 插件,可以在不修改源码、不 fork 仓库的前提下,为 Composer 安装的依赖包打补丁(patch),适合修复紧急 bug、适配本地环境或等待上游合并的临时改动。
在项目根目录运行:
composer require cweagans/composer-patches该插件会自动注册为 Composer 的插件,在每次 composer install 或 composer update 时检查并应用补丁。
补丁应为标准的 .patch 或 .diff 文件,推荐用 git diff 生成,确保路径与包解压后的相对路径一致(例如 src/Example.php,不是 vendor/vendor/name/src/Example.php)。
patches/my-fix.patch
a/src/... / b/src/...),可用 --no-prefix 生成更兼容的补丁在 composer.json 的 extra 段中添加 patches 配置:
"extra": {
"patches": {
"monolog/monolog": {
"Fix broken handler chaining": "patches/monolog-handler-chain-fix.patch"
},
"laravel/framework": {
"Allow custom cache TTL in config": "patches/laravel-cache-ttl.patch"
}
}
}键名是目标包的 vendor/name,值是一个对象,其中 key 是补丁描述(仅用于显示),value 是补丁文件路径(相对于 composer.json)。
运行以下命令触发补丁应用,并观察输出:
composer install --verbose 或 composer update --verbose
Applying patch 'Fix broken handler chaining' to vendor/monolog/monolog
--no-plugins 排查是否被其他插件干扰vendor/ 下对应文件是否变更注意:补丁只在安装/更新时执行一次,不会覆盖已手动修改的文件;若补丁失败,Composer 会中止操作并提示错误位置。
基本上就这些。补丁机制不复杂但容易忽略路径和 git diff 选项,保持补丁轻量、可读、可撤销,是长期维护的关键。
以上就是如何使用 composer-patches 插件为依赖包打上补丁?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号