43 votes

Comment ignorer la longueur de ligne PHP_CodeSniffer

J'ai utilisé PHP_CodeSniffer avec jenkins, mon build.xml a été configuré pour phpcs comme ci-dessous

 <target name="phpcs">
    <exec executable="phpcs">
        <arg line="--report=checkstyle --report-file=${basedir}/build/logs/checkstyle.xml --standard=Zend ${source}"/>
    </exec>
</target> 

Et je voudrais ignorer l'avertissement suivant

 FOUND 0 ERROR(S) AND 1 WARNING(S) AFFECTING 1 LINE(S)
--------------------------------------------------------------------------------
 117 | WARNING | Line exceeds 80 characters; contains 85 characters
--------------------------------------------------------------------------------

Comment puis-je ignorer l'avertissement de longueur de ligne ?

65voto

Wrikken Points 37727

Vous pouvez créer votre propre norme. Celui de Zend est assez simple (c'est à /usr/share/php/PHP/CodeSniffer/Standards/Zend/ruleset.xml dans mon installation Debian après l'avoir installé avec PEAR). Créez-en un autre basé sur celui-ci, mais ignorez le bit de longueur de ligne :

 <?xml version="1.0"?>
<ruleset name="Custom">
 <description>Zend, but without linelength check.</description>
 <rule ref="Zend">
  <exclude name="Generic.Files.LineLength"/>
 </rule>
</ruleset>

Et définissez --standard=/path/to/your/ruleset.xml .

Facultativement, si vous souhaitez simplement augmenter le nombre de caractères avant que cela ne soit déclenché, redéfinissez la règle :

  <!-- 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>

14voto

Hayder Abbass Points 452

Une autre façon d'ignorer le message La ligne dépasse x caractères consiste à utiliser l' --exclude pour exclure la règle.

 vendor/bin/phpcs --standard=PSR2  --exclude=Generic.Files.LineLength app/

Afin de trouver le nom de la règle à exclure, recherchez votre ensemble de règles correspondant dans le répertoire suivant :

vendor/squizlabs/php_codesniffer/src/Standards/<coding standard>/ruleset.xml

Le nom de la règle sera dans le nœud ref :

  <rule ref="Generic.Files.LineLength">
        <properties>
            <property name="lineLimit" value="120"/>
            <property name="absoluteLineLimit" value="0"/>
        </properties>
 </rule>

C'est plus rapide et moins lourd que de créer un ensemble de règles séparé.

1voto

Jsowa Points 4130

Si vous ne voulez pas taper à chaque fois la commande entière avec les paramètres --standard=PSR2 --exclude=Generic.Files.LineLength app/ vous pouvez créer le fichier phpcs.xml dans votre répertoire principal avec un paramètre de règle remplacé.

 <?xml version="1.0"?>
<ruleset name="PHP_CodeSniffer">
    <rule ref="PSR2"> <!-- ruleset standard -->
        <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>

Vous devez ensuite saisir uniquement la commande suivante :

 vendor/bin/phpcs

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X