innoraft / drupal-quality-checker
为Drupal项目设置代码质量检查工具。
Requires
- drupal/coder: ^8.3
- ergebnis/composer-normalize: ^2.0
- friendsoftwig/twigcs: ^6.0
- palantirnet/drupal-rector: ^0.13.1
- phpro/grumphp: ^1.5
- phpstan/phpstan: ^1.9
- squizlabs/php_codesniffer: ^3.7
README
概览
此Composer包将使用https://github.com/phpro/grumphp在提交代码之前提供一些基本的代码质量检查。有关详细信息,请参阅Lullabot文章。
此包已根据Innoraft的需求从vijaycs85/drupal-quality-checker进行定制。
安装
-
将
innoraft/drupal-quality-checker
添加到composer.json
中,或者直接运行composer require --dev innoraft/drupal-quality-checker
-
将项目根目录(不是Drupal根目录)中的
grumphp.yml
替换为vendor/innoraft/drupal-quality-checker/grumphp.yml.dist
就这么多。现在,所有任务(如下所示)将在每次git commit
时运行。
注意:作为安装的一部分,GrumPHP将为仓库添加
pre-commit
钩子。现有的pre-commit
可能在安装/卸载时被销毁。
默认设置
更多检查/验证器的长列表可在此处找到。
要自动设置所有包,请按照以下步骤操作
-
下载setup.sh文件并将其放置在docroot之外。
-
更新setup.sh的第12行,包含命令
composer require --dev innoraft/drupal-quality-checker
。根据您的设置使用适当的环境。例如,如果您使用Lando,请使用lando composer require --dev innoraft/drupal-quality-checker
。 -
更新setup.sh的第102行,包含命令
composer dump-autoload
。根据您的设置使用适当的环境。例如,如果您使用Lando,请使用lando composer dump-autoload
。 -
从docroot外部运行以下命令以使bash脚本可执行
chmod +x setup.sh
-
要从docroot外部执行bash脚本,请运行以下命令
./setup.sh
-
将出现其他提示,需要同意下载配置所需的包
-
当提示选择要运行的任务时,选择任何选项即可,因为grumphp.yml已经包含在包中,并将用于设置,因此这个选择不太重要
-
之后,请等待一段时间,让脚本执行和设置完成。
如果您想单独安装它们,请按照以下步骤操作
ESLint任务设置
-
转到自定义主题文件夹,并使用npm添加eslint包
npm install eslint --save-dev npm install eslint-config-airbnb --save-dev
-
现在在项目的根目录下运行以下命令
cp vendor/innoraft/drupal-quality-checker/eslintrc.json.dist .eslintrc.json
对于多站点,运行以下命令
cp vendor/innoraft/drupal-quality-checker/eslintrc.json.dist docroot/sites/<sitename>/themes/custom/<themename>/.eslintrc.json
-
在grumphp.yml文件中更新eslint任务的bin键,使用对eslint的bin文件的相对地址。
示例:如果您的主题名称是
drupal_theme
,则将其更改为web/themes/custom/drupal_theme/node_modules/.bin/eslint
Stylelint任务设置
-
转到自定义主题文件夹,并使用npm添加stylelint包
npm install stylelint --save-dev
-
现在在项目的根目录下运行以下命令
cp vendor/innoraft/drupal-quality-checker/stylelintrc.json.dist .stylelintrc.json
对于多站点,运行以下命令
cp vendor/innoraft/drupal-quality-checker/stylelintrc.json.dist docroot/sites/<sitename>/themes/custom/<themename>/.stylelintrc.json
-
对于多站点,运行以下命令
npm install stylelint-config-standard
-
在grumphp.yml文件中更新stylelint任务的bin键,使用对stylelint的bin文件的相对地址。
示例:如果您的主题名称是
drupal_theme
,则将其更改为web/themes/custom/drupal_theme/node_modules/.bin/stylelint
Trufflehog任务设置
-
在项目根级别创建一个名为
tasks
的新文件夹。 -
现在在项目的根目录下运行以下命令
cp vendor/innoraft/drupal-quality-checker/tasks/SecurityLeaks.php tasks
-
现在在项目根目录的
composer.json
文件中添加以下代码。(参考此包的composer.json
文件)"autoload": { "psr-4": { "Innoraft\\QualityChecker\\Trufflehog\\": "tasks" } },
一旦在
composer.json
中添加了代码,请执行此命令composer dump-autoload
-
安装
trufflehog
(如果尚未安装)。您可以使用以下命令实现相同的结果。curl -sSfL https://raw.githubusercontent.com/trufflesecurity/trufflehog/main/scripts/install.sh | sh -s -- -b $HOME/.local/bin
-
请检查并确认您的
grumphp.yml
是否已更新为vendor/innoraft/drupal-quality-checker/grumphp.yml.dist
(检查并确认trufflehog任务和服务属性是否已添加到grumphp.yml
文件中) -
Trufflehog
现在已准备好嗅探您的机密信息(:))