0

我在标准中包含外部嗅探时遇到了麻烦。使用最新版本的 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 之间有很大不同。

4

1 回答 1

4

PHP_CodeSniffer 不支持这种排除方法。ruleset.xml 文件的文档在这里:https ://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml

总之,您只能排除特定的嗅探或特定的错误消息。

我注意到您也建议将此作为功能请求:http ://pear.php.net/bugs/bug.php?id=19731

当我和妻子生下另一个孩子时,我将要进行长时间的休息,但我希望在新的一年回来时能够研究这种新型的排斥。

感谢您发布功能请求。

于 2012-12-05T21:33:36.527 回答