widgetsburritos/drupal-patch-checker

一个简单的辅助脚本,用于检查composer依赖,以确保它不会通过补丁添加hook_update_N()函数。

安装数: 11,696

依赖项: 0

建议者: 0

安全: 0

星标: 2

关注者: 2

分支: 3

开放问题: 1

类型:composer-plugin

2.0.3 2021-01-04 21:37 UTC

README

一个简单的辅助脚本,用于检查composer依赖,以确保它不会通过补丁添加hook_update_N()函数。

为什么存在此工具

我最近意识到,使用包含hook_update_N()的补丁是有风险的。[链接](https://www.widgetsandburritos.com/posts/2018-12-07/patching-production-drupal-sites-hook-update-n-risky)。简单来说,它可能会与其他模块更新产生冲突,这意味着某些更新钩子可能根本不会运行。这可能会在将来产生一些负面影响。此脚本有助于预防这些问题。

首次设置

将此包安装为开发依赖项

composer require --dev widgetsburritos/drupal-patch-checker

然后,将以下内容添加到您的composer.json文件中

    "scripts": {
        "check:patch": [
              "WidgetsBurritos\\DrupalPatchChecker\\DrupalPatchChecker::checkComposerFile"
         ],
    }

手动检查补丁

您可以通过运行以下命令手动检查您的补丁:composer run check:patch

这将产生类似于以下的结果

$ composer run check:patch
> WidgetsBurritos\DrupalPatchChecker\DrupalPatchChecker::checkComposerFile
Script WidgetsBurritos\DrupalPatchChecker\DrupalPatchChecker::checkComposerFile handling the check:patch event terminated with an exception

  [Exception]                                                                                                              
  patches/language_hierarchy/language_hierarchy-limit_views_results-2825851-14.patch contains hook_update_N() on Line 50.  

在包安装/更新时自动检查补丁

如果您想完全阻止补丁的安装,请相应地更新您的composer.json文件

    "scripts": {
        "check:patch": [
              "WidgetsBurritos\\DrupalPatchChecker\\DrupalPatchChecker::checkComposerFile"
         ],
         "post-install-cmd": [
              "composer run check:patch"
         ],
         "post-update-cmd": [
              "composer run check:patch"
         ],
    }

然后,下次您运行composer installcomposer update时,如果您的项目中包含带有hook_update_N()的补丁,它将抛出异常。