hotwebmatter / 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-10-01 21:10:02 UTC
README
此项目基于 Axelerant 分支 axelerant/drupal-quality-checker 的 vijaycs85/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 文件”部分,以及文档。