Единственный способ сделать это — написать собственный стандарт кодирования с помощью файла ruleset.xml. Он должен импортировать весь стандарт кодирования PEAR, но исключить конкретный снифф, выполняющий эту проверку. Этот бит можно сделать с помощью одного XML-файла.
Но нет встроенных сниффов, которые обеспечивают тип синтаксиса else
, который вы ищете. Поэтому, чтобы обеспечить это, вам нужно написать собственный снифф, что более сложно, так как вам также нужно где-то его хранить.
Если вы хотите начать с простого пользовательского стандарта кодирования, создайте файл с именем ruleset.xml
и сделайте его содержимым:
<?xml version="1.0"?>
<ruleset name="MyStandard">
<description>My custom coding standard.</description>
<rule ref="PEAR">
<exclude name="PEAR.ControlStructures.ControlSignature"/>
</rule>
</ruleset>
Затем запустите PHP_CodeSniffer следующим образом:
phpcs --standard=/path/to/ruleset.xml /path/to/code
Это проверит ваш код на соответствие стандарту кодирования PEAR, но исключит специальные проверки управляющих структур. Если это все, что вам нужно, вы можете остановиться на этом. Если у вас есть команда людей, которым вы хотите использовать этот пользовательский стандарт, просто дайте им файл, и они тоже смогут его использовать.
Подробнее о формате ruleset.xml можно узнать здесь: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml
Если вы хотите продолжить и написать собственный снифф, лучше всего начать с базового руководства: http://pear.php.net/manual/en/package.php.php-codesniffer.coding-standard-tutorial.php
Это объяснит, что такое стандарт кодирования. Затем вы захотите создать свой собственный снифф, который является просто копией PEAR с небольшими изменениями в том, как вы структурируете управление. Снифф PEAR находится здесь: https://github.com/squizlabs/PHP_CodeSniffer/blob/master/CodeSniffer/Standards/PEAR/Sniffs/ControlStructures/ControlSignatureSniff.php
Я предполагаю, что без тестирования вы захотите изменить } else {EOL',
на }EOLelse {EOL',
и посмотреть, сработает ли это.
person
Greg Sherwood
schedule
22.11.2012