johnatas-x / angry-bearded
Drupal 10项目代码质量检查工具。
Requires
- php: >=8.3
- drupal/coder: ^8.3
- ergebnis/composer-normalize: ^2.43
- friendsoftwig/twigcs: ^6.4
- johnatas-x/grumphp-drupal-check: ^2.8
- johnatas-x/grumphp-phpa: ^2.8
- johnatas-x/phpcpd: 6.0.4
- maglnet/composer-require-checker: ^4.12
- mglaman/phpstan-drupal: ^1.2
- php-parallel-lint/php-parallel-lint: ^1.4
- phpcompatibility/php-compatibility: dev-develop
- phpmd/phpmd: ^2.15
- phpro/grumphp: ^2.8
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: ^1.12
- phpstan/phpstan-deprecation-rules: ^1.2
- povils/phpmnd: ^3.5
- slevomat/coding-standard: ^8.15
- squizlabs/php_codesniffer: ^3.10
- vincentlanglet/twig-cs-fixer: ^3.1
Requires (Dev)
- roave/security-advisories: dev-latest
Suggests
- drupal/core-composer-scaffold: Scaffold relevant files in project root. Add johnatas-x/angry-bearded to extra.drupal-scaffold.allowed-packages.
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 } } }