45

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

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

4

4 に答える 4

67

独自の標準を作成できます。Zendのものは非常に単純です(これは/usr/share/php/PHP/CodeSniffer/Standards/Zend/ruleset.xml、PEARでインストールした後の私のDebianインストールにあります)。これに基づいて別のものを作成しますが、行長ビットは無視してください。

<?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>
于 2012-02-14T17:35:45.140 に答える
18

Lineが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>

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

于 2019-08-23T13:47:46.933 に答える
4
  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

于 2015-08-03T20:23:03.420 に答える
1

コマンド全体をパラメータで毎回入力したくない場合は、ルール設定を上書きしてメインディレクトリに--standard=PSR2 --exclude=Generic.Files.LineLength app/ファイルを作成できます。phpcs.xml

<?xml version="1.0"?>
<ruleset name="PHP_CodeSniffer">

    <rule ref="PSR2" /> <!-- ruleset standard -->
    <rule ref="Generic.Files.LineLength"> <!-- rule to override -->
        <properties>
            <property name="lineLimit" value="150"/> <!-- maximum line length -->
        </properties>
    </rule>
    <file>app</file> <!-- directory you want to analyze -->
    <arg name="encoding" value="utf-8"/>
</ruleset>

次に、次のコマンドのみを入力する必要があります。

vendor/bin/phpcs
于 2021-01-04T18:19:25.157 に答える