concrete5/dependency-patches

此包已被 弃用 并不再维护。作者建议使用 concretecms/dependency-patches 包。

concrete5 和 Concrete CMS 依赖所需的补丁

1.7.7 2023-12-01 15:17 UTC

This package is auto-updated.

Last update: 2023-12-01 15:18:45 UTC


README

Tests

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 进行补丁处理,您应该

  1. 在 Concrete 根目录中创建 .patch 文件
    1. 运行 composer reinstall <vendor>/<package> --prefer-source(需要 composer 2.1+)以拥有 git 仓库
    2. 在包目录中运行 git checkout -b my-patch <tag>(其中 <tag> 是对应于已安装包版本的标签)
    3. 编辑所需的文件
    4. 通过运行 git commit -am "我的美妙补丁" 创建带有更改的提交
    5. 通过运行 git format-patch --no-stat -1 创建补丁文件
    6. 通过删除无用行来编辑该补丁,例如
      • 初始的 From <sha1> <date>
      • git 特定的行(它们以 diff --git ...index sha1..sha1 开头)
      • 如果有,关闭注释(文件末尾的 -- 行和其后的任何其他行)
    7. 将 .patch 文件移动到依赖补丁仓库中 <vendor>/<package> 目录
  2. 在项目的 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"
    },
  3. 要本地测试补丁,您可以编辑 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 上,您可以使用正斜杠(/)而不是反斜杠(\)作为目录分隔符。