PHP CodeSniffer:错误:指定的嗅探代码“Generic.Files.LineEndings.InvalidEOLChar”无效

Tob*_*ann 4 codesniffer phpcodesniffer phpcs

我试图在我的 Windows 机器上排除对 EOL 字符的检查总是导致此错误消息:

>vendor\bin\phpcs.bat --standard=PSR2 --exclude=Generic.Files.LineEndings.InvalidEOLChar src\version.php
ERROR: The specified sniff code "Generic.Files.LineEndings.InvalidEOLChar" is invalid

Run "phpcs --help" for usage information
Run Code Online (Sandbox Code Playgroud)

无法弄清楚我做错了什么。我已经通过 composer 安装了 PHP CodeSniffer 并且正在运行 3.4.0 版。

Gre*_*ood 5

--excludeCLI参数接受3部分组成的嗅探代码,但你已经在4部分组成的错误代码通过。

在您的情况下,嗅探代码是Generic.Files.LineEndings并且嗅探仅生成一个错误代码,因此您可以忽略整个嗅探:

vendor\bin\phpcs.bat --standard=PSR2 --exclude=Generic.Files.LineEndings src\version.php
Run Code Online (Sandbox Code Playgroud)

如果您想排除单个错误代码,或者您只想锁定项目的标准,则需要使用 ruleset.xml 文件:https : //github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated - 规则集

  • 使用“-s”命令行参数运行 PHPCS。每条错误消息后都会显示错误消息代码,格式为“Standard.Category.Sniff.Error”。如果您想排除或更改该单个错误消息,请使用该由 4 部分组成的代码。如果您想排除 while sniff,请仅使用前 3 部分。 (3认同)
  • @GregSherwood 恕我直言,这条规则(“--exclude”接受 3 部分嗅探代码)没有在任何地方明确记录,这是一个耻辱……不应该在这里添加吗:https://github.com/squizlabs/PHP_CodeSniffer /wiki/Advanced-Usage#limiting-results-to-specific-sniffs ? (2认同)