web-dev-qa-db-ja.com

行の長さを無視する方法PHP_CodeSniffer

私は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
--------------------------------------------------------------------------------

行の長さの警告を無視するにはどうすればよいですか?

31
dextervip

独自の標準を作成できます。 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>
46
Wrikken
  1. ファイルCodeSniffer/Standards/PEAR/ruleset.xmlを見つけます– mac/linuxではターミナルで検索できます:

    locate PEAR/ruleset.xmlまたはSudo find / -name "ruleset.xml"

  2. 次に、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>

  3. 数値85(行の最大長)を必要なものに変更するだけです。

Phpcのデフォルトのコーディング標準はPEAR標準です。そのため、次の場所でruleset.xmlを編集する必要があります:CodeSniffer/Standards/PEAR/ruleset.xml

4
cofirazak

メッセージを無視する別の方法行が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>

個別のルールセットを作成するよりも速くて面倒ではありません。

0
Hyder B.