Как игнорировать длину строки PHP_CodeSniffer
Я использую PHP_CodeSniffer с jenkins, мой 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
--------------------------------------------------------------------------------
Как я могу игнорировать предупреждение о длине строки?
Ответы
Ответ 1
Вы можете создать свой собственный стандарт. Zend один довольно прост (это находится на /usr/share/php/PHP/CodeSniffer/Standards/Zend/ruleset.xml
в моей установке Debian после установки его с PEAR). Создайте еще один, основанный на нем, но игнорируйте бит длины строки:
<?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
.
Необязательно, если вы просто хотите увеличить счетчик char до того, как это запустится, переопределите правило:
<!-- 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>
Ответ 2
-
Найти файл CodeSniffer/Standards/PEAR/ruleset.xml - на mac/linux вы можете искать в терминале:
locate PEAR/ruleset.xml
или sudo find / -name "ruleset.xml"
-
Затем вам нужно найти следующие строки в файле 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>
-
Просто измените число 85 (максимальная длина строки) на то, что вы хотите.
Обратите внимание, что стандартным стандартом кодирования phpc является стандарт PEAR. Поэтому вам нужно отредактировать файл ruleset.xml в этом месте: CodeSniffer/Standards/PEAR/ruleset.xml
Ответ 3
Альтернативный способ игнорирования сообщения Строка превышает 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>
Это быстрее & менее громоздким, чем создание отдельного набора правил.