concrete5 / dependency-patches
1.7.7
2023-12-01 15:17 UTC
Requires
- mlocati/composer-patcher: ^1.0.0
README
concrete5 和 Concrete CMS 的依赖补丁
concrete5 v8 和 Concrete CMS v9+ 使用了许多第三方库,通过 Composer 安装。
较新版本的 PHP 的内部更改需要升级一些 composer 包,但其中一些与我们所支持的 PHP 版本不再兼容,或者尚未修复。
此 dependency-patches
项目包含所需的补丁,以便 concrete5 和 Concrete CMS 仍然可以使用这些包。
如何使用
可以从 https://www.concretecms.org/download 下载的 concrete5 和 Concrete CMS 的官方版本已经包含了 dependency-patches
中的补丁。
如果您使用基于 composer 的 concrete5/Concrete CMS 安装,您需要将这些行添加到您的 composer.json
文件中
- 在
require
部分(如果它尚未包含在 concrete5/Concrete CMS 附带的自定义composer.json
文件中)"concretecms/dependency-patches": "^1",
- 在
extra
部分"allow-subpatches": [ "concretecms/dependency-patches" ],
如何添加新补丁
如果您想对名为 <vendor>/<package>
的 composer 包版本 1.2.3
进行补丁处理,您应该
- 在 Concrete 根目录中创建
.patch
文件- 运行
composer reinstall <vendor>/<package> --prefer-source
(需要 composer 2.1+)以拥有 git 仓库 - 在包目录中运行
git checkout -b my-patch <tag>
(其中<tag>
是对应于已安装包版本的标签) - 编辑所需的文件
- 通过运行
git commit -am "我的美妙补丁"
创建带有更改的提交 - 通过运行
git format-patch --no-stat -1
创建补丁文件 - 通过删除无用行来编辑该补丁,例如
- 初始的
From <sha1> <date>
- git 特定的行(它们以
diff --git ...
和index sha1..sha1
开头) - 如果有,关闭注释(文件末尾的
--
行和其后的任何其他行)
- 初始的
- 将 .patch 文件移动到依赖补丁仓库中
<vendor>/<package>
目录
- 运行
- 在项目的
composer.json
文件中extra
.patches
部分添加<vendor>/<package>:1.2.3
键。例如"<vendor>/<package>:1.2.7": { "Description of the patch": "<vendor>/<package>/name-of-the-patch-file.patch" },
- 要本地测试补丁,您可以编辑 concrete5/Concrete CMS 安装的
composer.json
文件,添加- 在
require
部分"concretecms/dependency-patches": "dev-master"
- 在
repositories
部分{ "type": "path", "url": "relative/or/absolute/path/to/your-local/dependency-patches" }
PS:在 Windows 上,您可以使用正斜杠(/
)而不是反斜杠(\
)作为目录分隔符。
- 在