johnatas-x/angry-bearded

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

2.1.0 2024-09-26 07:07 UTC

README

此工具是预配置的 GrumPHP,适用于Drupal 10和11项目。

规则是自愿设定得比较严格,不要犹豫,根据您的需求调整.dist文件。

还包括.codeeditorconfig文件和Qodana模板。

安装

当使用 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/angry-bearded"
      ],
      ...
    }
  }

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

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

不使用 drupal/core-composer-scaffold

如果您没有使用脚手架插件,则包不会如预期地复制配置文件。

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

composer require --dev johnatas-x/angry-bearded

如果您项目中还没有grumphp.yml文件,GrumPHP会提示您创建一个。对提示回答“否”。

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

  • .editorconfig.dist
  • grumphp.yml.dist
  • phpcs.xml.dist
  • phpmd.xml.dist
  • phpstan.neon.dist
  • phpstan-drupal.neon.dist
  • qodana.yaml.dist
cp vendor/johnatas-x/angry-bearded/*.dist .

使用

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

自定义

  • 几乎所有的自定义都是从复制grumphp.yml.dist文件到您的项目开始的。请确保您有此文件。
  • ⚠️ 如果某些phpstan异常不适用于您的项目,请注释掉这些行,否则会引发错误。
  • 默认情况下,成功输出使用Drupal标志,您可以在grumphp.yml中使用GrumPHP的标志修改ascii

添加任务

您可以在grumphp.yml中添加和自定义各种任务。有关您可以使用和配置的任务,请参阅GrumPHP任务的在线文档

强制提交信息格式

要配置提交信息结构,请使用git_commit_message任务。例如,要强制提交信息包含Jira问题ID,请使用以下规则的片段。更多信息请参阅在线文档

# grumphp.yml
grumphp:
  tasks:
    git_commit_message:
      matchers:
        Must contain issue number: /YouTrack #\d+/

禁用提交横幅

GrumPHP支持横幅来庆祝(或责备)您的提交。这很有趣,但也可能让您感到厌烦。如果您不想使用它,请编辑grumphp.yml文件,并替换以下参数:

# grumphp.yml
grumphp:
    ascii: ~

您甚至可以禁用特定的组件,如下所示

# grumphp.yml
grumphp:
    ascii:
        succeeded: ~

有关脚手架的更多内容

如前所述,此包使用 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
      }
    }
  }

有关更多详细信息,请参阅 “排除脚手架文件” 部分和 文档 中的 core-composer-scaffold 插件。