drupal / coder
Coder 是一个用于审查 Drupal 代码的库。
Requires
- php: >=7.2
- ext-mbstring: *
- dealerdirect/phpcodesniffer-composer-installer: ^0.7.1 || ^1.0.0
- sirbrillig/phpcs-variable-analysis: ^2.11.7
- slevomat/coding-standard: ^8.11
- squizlabs/php_codesniffer: ^3.9.1
- symfony/yaml: >=3.4.0
Requires (Dev)
- phpstan/phpstan: ^1.7.12
- phpunit/phpunit: ^8.0
- 8.3.x-dev
- 8.3.24
- 8.3.23
- 8.3.22
- 8.3.21
- 8.3.20
- 8.3.19
- 8.3.18
- 8.3.17
- 8.3.16
- 8.3.15
- 8.3.14
- 8.3.13
- 8.3.12
- 8.3.11
- 8.3.10
- 8.3.9
- 8.3.8
- 8.3.7
- 8.3.6
- 8.3.5
- 8.3.4
- 8.3.3
- 8.3.2
- 8.3.1
- 8.3.0
- 8.2.12
- 8.2.11
- 8.2.10
- 8.2.9
- 8.2.8
- 8.2.7
- 8.2.6
- 8.2.5
- 8.2.4
- 8.2.3
- 8.2.2
- 8.2.1
- 8.2.0
- 8.2.0-rc1
- 8.2.0-beta1
- 8.2.0-alpha2
- 8.2.0-alpha1
- 7.2.5
- 7.2.4
- 7.2.3
- 7.2.2
- dev-8.x-3.x
- dev-8.x-2.x
- dev-7.x-2.x
This package is auto-updated.
Last update: 2024-09-01 15:33:32 UTC
README
Coder 是一个用于自动审查 Drupal 代码和修复编码标准的库。它定义了 PHP_CodeSniffer 的规则。
内置支持
- "Drupal": 编码标准 https://www.drupal.org/coding-standards
- "DrupalPractice": Drupal 模块开发的最佳实践
在线文档: https://www.drupal.org/node/1419980
注意:已移除对 JavaScript 的支持。请使用 ESLint 检查和修复 JavaScript 文件,并参阅 Drupal ESLint 文档。
全局安装
首先,确保已正确安装 Composer
which composer
如果您遇到 "composer not found" 或类似错误,请遵循 Composer 的安装说明。
在您的家目录(~/.config/composer
)的全局 Composer 目录中安装 Coder(8.3.x)
composer global require drupal/coder
要将 phpcs
和 phpcbf
命令在全局范围内可用,请将 Composer bin 路径添加到您的 $PATH
变量中,例如 ~/.profile
、~/.bashrc
或 ~/.zshrc
export PATH="$PATH:$HOME/.config/composer/vendor/bin"
使用方法
检查 Drupal 编码标准
phpcs --standard=Drupal --extensions=php,module,inc,install,test,profile,theme,css,info,txt,md,yml /file/to/drupal/example_module
检查 Drupal 最佳实践
phpcs --standard=DrupalPractice --extensions=php,module,inc,install,test,profile,theme,css,info,txt,md,yml /file/to/drupal/example_module
自动修复编码标准
phpcbf --standard=Drupal --extensions=php,module,inc,install,test,profile,theme,css,info,txt,md,yml /file/to/drupal/example_module
在 Drupal 项目中本地安装
对于协作开发者团队,在本地锁定 Coder 版本与您的其他开发依赖项是有意义的。在包含您的 composer.json 文件的项目中执行以下操作
composer require --dev drupal/coder
然后您可以对自定义模块代码运行 Coder,如下所示
./vendor/bin/phpcs --standard=Drupal --extensions=php,module,inc,install,test,profile,theme,css,info,txt,md,yml web/modules/custom
为了简化执行,强烈建议使用设置文件,请参阅以下内容。
将设置存储在 phpcs.xml.dist 文件中
为了将 PHPCS 设置保存并提交到 Git,您可以在项目中使用 phpcs.xml.dist 文件,如下所示
<?xml version="1.0" encoding="UTF-8"?> <ruleset name="example"> <description>PHP CodeSniffer configuration for example development.</description> <!-- Check all files in the current directory and below. --> <file>.</file> <arg name="extensions" value="php,module,inc,install,test,profile,theme,css,info,txt,md,yml"/> <!-- Change this value to 7 if you want to check Drupal 7 code. --> <config name="drupal_core_version" value="8"/> <!-- If you have Coder installed locally then you can reference the Drupal standards with relative paths. Otherwise simply use "Drupal" and "DrupalPractice. --> <rule ref="../vendor/drupal/coder/coder_sniffer/Drupal"> <!-- Example how you would disable a rule you are not compliant with yet: <exclude name="Drupal.Commenting.Deprecated"/> --> </rule> <rule ref="../vendor/drupal/coder/coder_sniffer/DrupalPractice"/> <!-- Example how you would disable an external rule you do not like: <rule ref="PEAR.Functions.ValidDefaultValue.NotAtEnd"> <severity>0</severity> </rule> --> </ruleset>
然后您可以在没有选项的情况下调用 phpcs,它将读取当前目录中的 phpcs.xml.dist。这也可以用于持续集成设置。示例
./vendor/bin/phpcs -p
与编辑器一起使用
Drupal Code Sniffer 可以与各种编辑器一起使用。
编辑器
自动化测试(PHPUnit + PHPCS + PHPStan)
Coder Sniffer 附带一个 PHPUnit 测试套件,以确保嗅探器正确工作。使用 Composer 安装依赖项
composer install
然后执行测试
./vendor/bin/phpunit
然后对 Coder 自身执行编码标准检查器
./vendor/bin/phpcs
然后执行静态分析
./vendor/bin/phpstan
贡献
- 确保在 https://www.drupal.org/project/issues/coder 上存在一个问题
- 在 https://github.com/pfrenssen/coder 上创建一个 Pull Request
- 将 pull request 的链接发布到 drupal.org 上的问题,并将问题设置为 "需要审查"
谢谢!
维护者
[//]: # cspell:ignore Pieter Frenssen Welford
- Pieter Frenssen, https://www.drupal.org/u/pfrenssen
- 迈克尔·韦福德,https://www.drupal.org/u/mikejw
- 克劳斯·普尔,https://www.drupal.org/u/klausi
致谢
格雷格·谢伍德和Squiz Pty Ltd,许多嗅探器是对他们在PHPCS上的原始工作的修改版本。