2012-02-14 19 views
16

He estado usando PHP_CodeSniffer con Jenkins, mi build.xml se configuró para phpcs como a continuacióncómo ignorar la longitud de línea PHP_CodeSniffer

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

y me gustaría hacer caso omiso de la advertencia siguiente

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

¿Cómo podría ignorar la advertencia de longitud de línea?

+0

Hola dextervip. ¿Estás usando un plugin de Jenkins para publicar tus resultados de phpcs? Me gustaría saber cómo está configurado esto en Jenkins. Cheers, ns – nonshatter

+1

@nonshatter He estado usando Violations puglin para publicar mis resultados. Funciona bastante bien, solo instálalo y habilítalo en tu proyecto vinculando tu archivo xml. – dextervip

+0

Gracias @dextervip Lo comprobaré. Acabo de obtener una configuración que funcionaba ayer usando el complemento 'checkstyle'. Proporciona buenos informes con algunos gráficos de tendencias, etc. Más información para los interesados ​​aquí: http://stackoverflow.com/a/12197103/1016364 – nonshatter

Respuesta

35

Puede crear su propio estándar. El Zend one es bastante simple (está en /usr/share/php/PHP/CodeSniffer/Standards/Zend/ruleset.xml en mi instalación de Debian después de instalarlo con PEAR). Crear otro basado en él, pero ignorar el bit de la línea de longitud:

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

Y establecer --standard=/path/to/your/ruleset.xml.

Opcionalmente, si lo que desea es el recuento de carbón antes de que este se activa, redefinir la regla:

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

¡Gracias, eso es lo que estaba buscando! – dextervip

+0

Hola Wrikken, ¿sabes dónde puedo encontrar el archivo para editar la regla? Gracias – nn2

+1

@DanJ .: como se dijo, no edite la regla existente, extienda un conjunto de reglas que le guste y vuelva a escribir algunas reglas. Si realmente desea acceder al archivo: depende, por lo general, se encuentran en '/ usr/share/php /' en algún lugar como en la respuesta. – Wrikken

2
  1. Buscar archivo CodeSniffer/Normas/PEAR/ruleset.xml - en Mac/Linux se puede buscar en el terminal:

    locate PEAR/ruleset.xml o sudo find/-name "ruleset.xml"

  2. Luego hay que encontrar las siguientes líneas en el 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. Sólo cambia el número 85 (la longitud máxima de la línea) a lo que desea.

Observe que el estándar de codificación predeterminado del phpc es el estándar PEAR. Por lo tanto, debe editar ruleset.xml en esta ubicación: CodeSniffer/Standards/PEAR/ruleset.xml

Cuestiones relacionadas