concretecms / dependency-patches
为 concrete5 和 Concrete CMS 依赖项所需的补丁
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 包,但其中一些不再与我们的支持版本兼容,或者它们尚未修复。
此 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 文件移动到 dependency-patches 仓库中
<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 上,您可以使用正斜杠(/
)而不是反斜杠(\
)作为目录分隔符。
- 在