0

標準に外部スニフを含めるのに問題があります。PHP_CodeSniffer 1.4.3 の最新バージョンを使用すると、スニフのグループを含めることができません。それらを個別に含めることもできますが、メンテナンスを減らして、不要なものだけをリストしたいと思います。

作業 ruleset.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>

動作しない 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 に答える