hotwebmatter/drupal-quality-checker

用于 Drupal 项目的代码质量检查工具。

2.0.0-alpha1 2024-10-01 19:49 UTC

This package is auto-updated.

Last update: 2024-10-01 21:10:02 UTC


README

此项目基于 Axelerant 分支 axelerant/drupal-quality-checkervijaycs85/drupal-quality-checker 进行了定制。除了模板文件不同之外,它使用下面的 AxelerantDQCPlugin 来复制默认配置文件。

安装

从 Beta 8 升级? 读取 变更说明,了解需要对 grumphp.yml.dist 做的修改。

composer require --dev hotwebmatter/drupal-quality-checker

这将添加插件到您的项目并复制默认配置文件。这些文件是:

  • grumphp.yml.dist
  • phpcs.xml.dist
  • phpmd.xml.dist
  • phpstan.neon.dist

由于这些是 .dist 文件,插件将在每次 composer install 时覆盖它们。如果您打算自定义默认设置,那么我们建议您将它们重命名为删除 .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/hotwebmatter/drupal-quality-checker/phpmd.xml.dist phpmd.xml

根据您的需要编辑它并提交。请记住修改 grumphp.yml 文件以包含新的路径。

# grumphp.yml
grumphp:
  tasks:
    phpmd:
      ruleset: ['phpmd.xml']

自定义 phpcs 规则

首先将规则集复制到项目根目录

cp vendor/hotwebmatter/drupal-quality-checker/phpcs.xml.dist phpcs.xml

根据您的需要编辑它并提交。请记住修改 grumphp.yml 文件以包含新的路径。

# grumphp.yml
grumphp:
  tasks:
    phpcs:
      standard: ['phpcs.xml']

自定义 phpstan 规则

首先将规则集复制到项目根目录

cp vendor/hotwebmatter/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 文件”部分,以及文档