widgetsburritos / drupal-patch-checker
一个简单的辅助脚本,用于检查composer依赖,以确保它不会通过补丁添加hook_update_N()函数。
2.0.3
2021-01-04 21:37 UTC
Requires
- php: >=7.1
- composer-plugin-api: ^1.0 || ^2.0
Requires (Dev)
- composer/composer: ^1.0 || ^2.0
- composer/semver: ^1 || ^3
- drupal/coder: ^8.3
- phpunit/phpunit: ^7.4
This package is auto-updated.
Last update: 2024-09-29 22:56:33 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 install
或composer update
时,如果您的项目中包含带有hook_update_N()
的补丁,它将抛出异常。