axelerant / drupal-quality-checker
Drupal项目的代码质量检查工具。
Requires
- composer-plugin-api: ^2.0
- dealerdirect/phpcodesniffer-composer-installer: *
- drupal/coder: ^8.3.7
- friendsoftwig/twigcs: ^4.0 || ^5.0 || ^6.0
- mglaman/phpstan-drupal: ^1.2
- php-parallel-lint/php-parallel-lint: ^1.2
- phpcompatibility/php-compatibility: ^9.0
- phpmd/phpmd: ^2.8
- phpro/grumphp-shim: ^2.0
Requires (Dev)
- composer/composer: ^2.7
This package is auto-updated.
Last update: 2024-09-16 14:40:49 UTC
README
此版本是为Axelerant的需求从 vijaycs85/drupal-quality-checker 定制的。除了使用不同的模板文件外,它还使用了Axelerant的标志。
安装
从Beta 8升级? 请阅读 更改说明,了解您需要对grumphp.yml.dist所做的更改。
composer require --dev axelerant/drupal-quality-checker
这将添加插件到您的项目,并复制默认配置文件。这些文件包括:
- grumphp.yml.dist
- phpcs.xml.dist
- phpmd.xml.dist
- phpstan.neon.dist
由于这些是 .dist
文件,插件将在每次 composer install
时覆盖它们。如果您想要自定义默认设置,我们建议您将它们重命名为删除 .dist
后缀。因此,将这 .dist
文件添加到您的 .gitignore
文件中是个好主意。
使用方法
无需额外步骤,但如果git钩子没有触发,请运行 php ./vendor/bin/grumphp git:init
。有关其他命令,请参阅 grumhp的文档。
自定义
几乎所有自定义都始于首先将 grumphp.yml.dist
文件复制到您的项目中。请确保您有该文件。
添加任务
您可以在grumphp.yml中添加和自定义各种任务。有关您可以使用和配置的任务,请参阅 GrumPHP任务在线文档。
强制提交消息格式
要配置提交消息结构,请使用 git_commit_message任务。例如,为了强制提交消息包含Jira问题ID,请使用以下规则片段。更多信息请参见 在线文档。
# grumphp.yml grumphp: tasks: git_commit_message: matchers: Must contain issue number: /JIRA-\d+/
禁用提交横幅
GrumPHP支持在提交时庆祝(或斥责)。这很有趣,但也可能让您感到厌烦。如果您不想使用它,请编辑grumphp.yml文件,并替换以下参数
# grumphp.yml grumphp: ascii: ~
您甚至可以禁用特定的横幅,如下所示
# grumphp.yml grumphp: ascii: succeeded: ~
覆盖phpmd规则集
首先将规则集复制到项目根目录
cp vendor/axelerant/drupal-quality-checker/phpmd.xml.dist phpmd.xml
根据您的需要进行编辑并提交。请记住修改grumphp.yml文件以包含新的路径。
# grumphp.yml grumphp: tasks: phpmd: ruleset: ['phpmd.xml']
自定义phpcs规则
首先将规则集复制到项目根目录
cp vendor/axelerant/drupal-quality-checker/phpcs.xml.dist phpcs.xml
根据您的需要进行编辑并提交。请记住修改grumphp.yml文件以包含新的路径。
# grumphp.yml grumphp: tasks: phpcs: standard: ['phpcs.xml']
自定义phpstan规则
首先将规则集复制到项目根目录
cp vendor/axelerant/drupal-quality-checker/phpstan.neon.dist phpstan.neon
根据您的需要进行编辑并提交。请记住修改grumphp.yml文件以包含新的路径。
# grumphp.yml grumphp: tasks: phpstan: configuration: phpstan.neon
有关脚手架的更多内容
如前所述,此软件包使用 drupal/core-composer-scaffold
插件将一些文件脚手架到项目根目录。这不是必需的,但如果您正在构建Drupal网站,您很可能已经在使用它。
脚手架操作在每次composer操作时运行,并覆盖文件。只有文件 grumphp.yml.dist
在后续操作中不会被覆盖。如果您正在自定义其他配置文件,并且不希望更新覆盖您的更改,您可以在composer.json文件中覆盖此行为。例如,要跳过 phpmd.xml.dist
被覆盖,请向您的 composer.json
添加以下内容
"name": "my/project", ... "extra": { "drupal-scaffold": { "file-mapping": { "[project-root]/phpmd.xml.dist": false } } }
有关更多详细信息,请阅读核心-composer-scaffold 插件的"排除 Scaffold 文件"部分的文档。
从 Beta 8 升级
GrumPHP 0.19 引入了对 YAML 文件结构的重大更改(破坏性更改)。本仓库中的模板已根据新结构进行了更新。但是,在您升级到 Beta 9 或更高版本之前,您需要更改项目中的 YML 文件。
幸运的是,更改很简单,在许多情况下只需一行更改。将 parameters
部分 重命名为 grumphp
。我们的默认模板包含两个参数,它们仍需保留在 parameters
下。它们是 git_dir
和 bin_dir
。查看更改的 diff 以了解您需要更改 grumphp.yml 文件中的哪些内容。此外,请参阅GrumPHP 0.19 的发布页面。
最后,您可以观看这个视频,了解如何在项目中升级。链接: https://youtu.be/XoFJfBcZF58