johnatas-x / drupal-quality-checker
Requires
- dealerdirect/phpcodesniffer-composer-installer: *
- drupal/coder: 8.3.*
- friendsoftwig/twigcs: 6.*
- johnatas-x/grumphp-drupal-check: 1.1.*
- mglaman/phpstan-drupal: ^1.1
- php-parallel-lint/php-parallel-lint: 1.3.*
- phpcompatibility/php-compatibility: 9.3.*
- phpmd/phpmd: 2.13.*
- phpro/grumphp-shim: 2.0.0
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.10
- phpstan/phpstan-deprecation-rules: ^1.1
- sebastian/phpcpd: 6.0.3
Requires (Dev)
- roave/security-advisories: dev-latest
Suggests
- drupal/core-composer-scaffold: Scaffold relevant files in project root. Add johnatas-x/drupal-quality-checker to extra.drupal-scaffold.allowed-packages.
README
⚠️⚠️⚠️⚠️⚠️
此项目已过时。
基础太宽松,建议使用:通过调整规则以满足您的需求:Angry bearded。
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_dir
和 bin_dir
。查看 更改的diff 以了解在您的 grumphp.yml 文件中需要更改什么。还可以在 GrumPHP 0.19 版本的发布页面 上了解更多信息。
最后,您可以观看这个视频,了解我是如何在项目中升级的。视频链接: https://youtu.be/XoFJfBcZF58