johnatas-x/drupal-quality-checker

此软件包已 弃用 且不再维护。作者建议使用 johnatas-x/angry-bearded 软件包。

Drupal 9 项目代码质量检查工具。

2.0.0 2023-08-14 16:47 UTC

This package is auto-updated.

Last update: 2023-08-14 22:00:49 UTC


README

⚠️⚠️⚠️⚠️⚠️

此项目已过时。

基础太宽松,建议使用:通过调整规则以满足您的需求:Angry bearded

本项目基于 axelerantvijaycs85 的最后版本。

Drupal 代码质量预设包

这是基于 axelerant/drupal-quality-checker 定制的,而该软件包是基于 vijaycs85/drupal-quality-checker 定制的。目标是使初始项目保持最新,同时利用 Axelerant 的改进。为了尽可能全球化,Axelerant 的标志已被 Drupal 的标志(来自初始项目)所替换。

安装

从 Beta 8 升级? 读取 更改说明,了解您需要进行的更改。

使用 drupal/core-composer-scaffold (推荐)

在大多数情况下,如果您已使用最新的 Drupal 模板设置,您已经使用 drupal/core-composer-scaffold 软件包。此软件包使用 core-composer-scaffold 在项目中设置配置文件。为了使此操作正常工作,请在 composer 的 extra.drupal-scaffold.allowed-packages 部分添加此软件包名称。

 "name": "my/project",
  ...
  "extra": {
    "drupal-scaffold": {
      "allowed-packages": [
        "johnatas-x/drupal-quality-checker"
      ],
      ...
    }
  }

现在,运行 composer require 将软件包包含到您的应用程序中。由于软件包现在被允许,core-composer-scaffold 软件包将复制配置文件。

有关更多关于脚手架的信息,请参阅 更多关于脚手架的信息

不使用 drupal/core-composer-scaffold

如果您不使用脚手架插件,则软件包不会像预期的那样复制配置文件。

首先,运行 composer require 将软件包包含到您的应用程序中。

composer require --dev johnatas-x/drupal-quality-checker

如果您项目中还没有 grumphp.yml 文件,GrumPHP 将要求您创建一个。对于提示回答 "No"。

然后,将库中的所有 *.dist 复制到您的项目根目录。复制的文件包括:

  • grumphp.yml.dist
  • phpcs.xml.dist
  • phpmd.xml.dist
cp vendor/johnatas-x/drupal-quality-checker/*.dist .

使用方法

无需额外步骤,但如果 Git 钩子没有触发,请运行 php ./vendor/bin/grumphp git:init。有关更多命令,请参阅 grumphp 的文档

自定义

几乎所有自定义都是从首先将 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/johnatas-x/drupal-quality-checker/phpmd.xml.dist phpmd.xml

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

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

自定义 phpcs 规则

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

cp vendor/johnatas-x/drupal-quality-checker/phpcs.xml.dist phpcs.xml

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

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

自定义 phpstan 参数

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

cp vendor/johnatas-x/drupal-quality-checker/phpstan.neon.dist 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
      }
    }
  }

有关更多详细信息,请参阅 “排除脚手架文件” 部分,该部分包含在 文档 中。

从 Beta 8 升级

GrumPHP 0.19 引入了对 YAML 文件结构的 重大更改。此存储库中的模板已根据新结构更新。但是,在您升级到 Beta 9 或更高版本之前,您需要更改项目中所有的 YML 文件。

幸运的是,这个更改很简单,在很多情况下只需要一行代码的更改。将 parameters 部分 重命名为 grumphp。我们的默认模板包含两个参数,它们仍然需要保留在 parameters 下。它们是 git_dirbin_dir。查看 更改的diff 以了解在您的 grumphp.yml 文件中需要更改什么。还可以在 GrumPHP 0.19 版本的发布页面 上了解更多信息。

最后,您可以观看这个视频,了解我是如何在项目中升级的。视频链接: https://youtu.be/XoFJfBcZF58