私はjenkinsでPHP_CodeSnifferを使用していますが、私のbuild.xmlは以下のようにphpcs用に設定されています
<target name="phpcs">
<exec executable="phpcs">
<arg line="--report=checkstyle --report-file=${basedir}/build/logs/checkstyle.xml --standard=Zend ${source}"/>
</exec>
</target>
そして、私は次の警告を無視したいと思います
FOUND 0 ERROR(S) AND 1 WARNING(S) AFFECTING 1 LINE(S)
--------------------------------------------------------------------------------
117 | WARNING | Line exceeds 80 characters; contains 85 characters
--------------------------------------------------------------------------------
行の長さの警告を無視するにはどうすればよいですか?
独自の標準を作成できます。 Zendは非常にシンプルです(これは、PEARでインストールした後の私のDebianインストールの/usr/share/php/PHP/CodeSniffer/Standards/Zend/ruleset.xml
にあります)。これに基づいて別のものを作成しますが、行の長さのビットは無視します。
<?xml version="1.0"?>
<ruleset name="Custom">
<description>Zend, but without linelength check.</description>
<rule ref="Zend">
<exclude name="Generic.Files.LineLength"/>
</rule>
</ruleset>
そして--standard=/path/to/your/ruleset.xml
を設定します。
オプションで、これがトリガーされる前に文字数を増やしたい場合は、ルールを再定義します。
<!-- Lines can be N chars long (warnings), errors at M chars -->
<rule ref="Generic.Files.LineLength">
<properties>
<property name="lineLimit" value="N"/>
<property name="absoluteLineLimit" value="M"/>
</properties>
</rule>
ファイルCodeSniffer/Standards/PEAR/ruleset.xmlを見つけます– mac/linuxではターミナルで検索できます:
locate PEAR/ruleset.xml
またはSudo find / -name "ruleset.xml"
次に、ruleset.xmlで次の行を見つける必要があります。
<!-- Lines can be 85 chars long, but never show errors --> <rule ref="Generic.Files.LineLength"> <properties> <property name="lineLimit" value="85"/> <property name="absoluteLineLimit" value="0"/> </properties> </rule>
数値85(行の最大長)を必要なものに変更するだけです。
Phpcのデフォルトのコーディング標準はPEAR標準です。そのため、次の場所でruleset.xmlを編集する必要があります:CodeSniffer/Standards/PEAR/ruleset.xml
メッセージを無視する別の方法行がx文字を超えていますは--exclude
フラグはルールを除外します。
vendor/bin/phpcs --standard=PSR2 --exclude=Generic.Files.LineLength app/
除外するルール名を見つけるには、次のディレクトリで対応するルールセットを見つけます。
vendor/squizlabs/php_codesniffer/src/Standards/<coding standard>/ruleset.xml
ルール名はrefノードにあります。
<rule ref="Generic.Files.LineLength">
<properties>
<property name="lineLimit" value="120"/>
<property name="absoluteLineLimit" value="0"/>
</properties>
</rule>
個別のルールセットを作成するよりも速くて面倒ではありません。