2015-10-29 1 views
0

Когда я смотрю на ruleset.xml PSR2 в качестве примера, я вижу много комментировали блоков говоря <!-- checked in Files/SideEffectsSniff -->PHPCS ruleset.xml «Проверено ххх»

Здесь есть небольшой отрывок из: https://github.com/squizlabs/PHP_CodeSniffer/blob/master/CodeSniffer/Standards/PSR2/ruleset.xml

<!-- PHP code MUST use only UTF-8 without BOM. --> 
<rule ref="Generic.Files.ByteOrderMark"/> 

<!-- 2.3. Side Effects --> 

<!-- A file SHOULD declare new symbols (classes, functions, constants, etc.) and cause no other side effects, or it SHOULD execute logic with side effects, but SHOULD NOT do both. --> 
<!-- checked in Files/SideEffectsSniff --> 

В остальном файла нет правил, аналогичных Files.SideEffectsSniff.

Мой вопрос в том, проверены ли побочные эффекты или нет? И если да, то какое правило несет за это ответственность?

Благодарим вас за разъяснение.

ответ

1

Короткий ответ: Да, побочные эффекты проверяются PSR1 и PSR2, а ответственность за это является: https://github.com/squizlabs/PHP_CodeSniffer/blob/master/CodeSniffer/Standards/PSR1/Sniffs/Files/SideEffectsSniff.php и код для импорта в собственный стандарт - PSR1.Files.SideEffects.


Сначала заметим, что набор правил фрагмент кода вы опубликовали на самом деле из pSR1, но PSR2 импортирует весь стандарт pSR1 в верхней части его файла ruleset.xml, поэтому нюхать выполняется при выполнении обоих стандартов.

Когда я писал эти файлы ruleset.xml, я использовал теги <rule>, чтобы показывать, когда я импортировал нюансы из других стандартов, и использовал комментарии, чтобы показать, когда sniff был включен внутри самого стандарта.

В PHPCS вы можете импортировать sniffs с помощью кода или включать классы внутри папки Sniffs в том же каталоге, что и файл ruleset.xml. PSR1 и PSR2 имеют свои собственные классы sniff, и они импортируются автоматически, поэтому мне не нужно использовать тег <rule> в наборе правил.

+0

Спасибо за объяснение! – lockdoc

 Смежные вопросы

  • Нет связанных вопросов^_^