我在标准中包含外部嗅探时遇到了麻烦。使用最新版本的 PHP_CodeSniffer 1.4.3,我不能包含一组嗅探。我可以单独包含它们,但我想减少维护,只列出我不想要的。
工作规则集.xml
<?xml version="1.0"?>
<ruleset name="ICAP Standards">
<description>ICAP Coding Standards for PHP_CodeSniffer</description>
<rule ref="Generic.PHP.UpperCaseConstant" />
</ruleset>
这有效并包括简单的测试。但是,我想将所有内容都包含在该组中,并排除一次嗅探。
也适用于 PHP_CodeSniffer 的 ruleset.xml ICAP 编码标准
<rule ref="Generic">
<exclude name="Generic.PHP.LowerCaseConstant"/>
</rule>
</ruleset>
非工作规则集.xml
<?xml version="1.0"?>
<ruleset name="ICAP Standards">
<description>ICAP Coding Standards for PHP_CodeSniffer</description>
<rule ref="Generic.PHP">
<exclude name="Generic.PHP.LowerCaseConstant"/>
</rule>
</ruleset>
此规则集不起作用,并在运行 PHPCS 时返回异常。
PHP_CodeSniffer_Exception: Referenced sniff Generic.PHP does not exist in C:\Program Files (x86)\PHP\pear\PHP\CodeSniffer.php on line 845
这是刚刚发布的版本 1.4.3 和 PHP 5.4.8。
我的 PHPCS -i 确实将 Generic 显示为已安装的标准:
The installed coding standards are ICAP, MySource, PEAR, PHPCS, PSR1, PSR2, Squiz and Zend.
我在混合环境中工作,并试图尽可能避免使用路径,因为它们在 Windows 和 Ubuntu 12.10 之间有很大不同。