2012-02-14 21 views
16

Używam PHP_CodeSniffer z Jenkins, mój build.xml został skonfigurowany do phpcs jak poniżejJak Ignoruj ​​Długość linii PHP_CodeSniffer

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

I chciałbym, aby zignorować następujące ostrzeżenie

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

Jak mogę zignorować ostrzeżenie o długości linii?

+0

Hi dextervip. Czy używasz wtyczki Jenkins do publikowania wyników phpcs? Chciałbym wiedzieć, jak to się dzieje w Jenkins. Pozdrawiam, ns – nonshatter

+1

@nonshatter Używam Violations puglin do publikowania moich wyników. Działa całkiem nieźle, wystarczy go zainstalować i włączyć w projekcie, łącząc się z plikiem xml. – dextervip

+0

Dzięki @dextervip Sprawdzę to. Właśnie wczoraj uruchomiłem instalację z wtyczką "checkstyle". Daje kilka ładnych raportów z wykresami trendów itp. Więcej informacji dla zainteresowanych: http://stackoverflow.com/a/12197103/1016364 – nonshatter

Odpowiedz

35

Można stworzyć własny standard. Zend jest dość prosty (jest to /usr/share/php/PHP/CodeSniffer/Standards/Zend/ruleset.xml w mojej instalacji Debiana po instalacji z PEAR). Tworzenie inny na jego podstawie, ale ignorować trochę linia długości:

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

i ustawić --standard=/path/to/your/ruleset.xml.

Ewentualnie, jeśli po prostu chcesz się liczyć char zanim to spowodowało, przedefiniować zasadę:

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

Dziękuję, tego właśnie szukałem! – dextervip

+0

Cześć Wrikken, czy wiesz, gdzie mogę znaleźć plik do edycji reguły? Dzięki – nn2

+1

@DanJ .: nie edytuj istniejącej reguły, rozszerzaj zestawu reguł, który Ci się podoba i przepisaj kilka reguł. Jeśli naprawdę chcesz dostać się do pliku: to zależy, zazwyczaj są one zawieszone w '/ usr/share/php /' gdzieś tak, jak w odpowiedzi. – Wrikken

2
  1. znaleźć pliku CodeSniffer/Normy/PEAR/ruleset.xml - na Mac/Linux można szukać w terminalu:

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

  2. Następnie trzeba znaleźć następujące wiersze w 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. Wystarczy zmienić numer 85 (max długość linii), co chcesz.

Należy zauważyć, że standardem kodowania phpc jest standard PEAR. Więc trzeba edytować ruleset.xml w tej lokalizacji: CodeSniffer/Normy/PEAR/ruleset.xml