PHP CodeSniffer是否支持特定规则的配置,例如Rubcop?

时间:2018-09-24 20:44:36

标签: codesniffer

借助Rubocop,我可以覆盖this之类的.rubocop.yml文件中的规则:

AllCops:
  RunRailsCops: true

# Commonly used screens these days easily fit more than 80 characters.
Metrics/LineLength:
  Max: 120

# Too short methods lead to extraction of single-use methods, which can make
# the code easier to read (by naming things), but can also clutter the class
Metrics/MethodLength: 
  Max: 20

我必须相信CodeSniffer支持类似的功能,但是在他们的Wiki页面上,我找不到任何有关规则的信息:

默认配置文件似乎不支持它:

1 个答案:

答案 0 :(得分:1)

是的,PHP_CodeSniffer允许您使用ruleset.xml文件定义自己的编码标准。此处提供带注释的:https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-Ruleset

您也可以将文件phpcs.xml命名为让PHPCS自动将其拾取,并停止每次运行都需要使用--standard = / path / to / ruleset.xml。此处的文档:https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#using-a-default-configuration-file

许多嗅探器具有允许您更改其行为的属性。您可以在此处查看列表:https://github.com/squizlabs/PHP_CodeSniffer/wiki/Customisable-Sniff-Properties

一个很好的例子可能是行长一:https://github.com/squizlabs/PHP_CodeSniffer/wiki/Customisable-Sniff-Properties#genericfileslinelength

您可能还想检出PHPCS用作完整示例的phpcs.xml文件:https://github.com/squizlabs/PHP_CodeSniffer/blob/master/phpcs.xml.dist

如何完全构造文件可能不在此问题的范围内,但是您应该能够搜索构造PHPCS规则集以获得更多信息。如果没有,请在这里问更多问题:)