Как я могу подавить предупреждения PHPCS с помощью комментариев?

У моего TestMyClass.php есть два определения класса в одном файле (класс модульного тестирования), а PHP Code Sniffer жалуется, что каждый класс должен быть в файле сам по себе . Как я могу подавить это предупреждение?

 class MyClassImpl implements MyInterface { // ... } class MyClassTest extends \PHPUnit_Framework_TestCase { // ... } 

Solutions Collecting From Web of "Как я могу подавить предупреждения PHPCS с помощью комментариев?"

Вы можете заставить PHP_CodeSniffer игнорировать определенные файлы или строки в файле, используя комментарии: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#ignoring-files-and-folders

В этом случае ошибка будет сгенерирована при определении вашего второго класса, поэтому вам придется написать второе определение следующим образом:

 // @codingStandardsIgnoreStart class MyClassTest extends \PHPUnit_Framework_TestCase { // @codingStandardsIgnoreEnd // ... } 

Но вы также можете просто игнорировать весь файл, если он не должен быть проверен, либо с помощью комментария @codingStandardsIgnoreFile, либо путем указания исключений в командной строке (см. Предыдущую ссылку для информации).

Если вы обнаружите, что делаете это много, и вы не хотите добавлять комментарии к своему коду, вы также можете создать свой собственный стандарт кодирования. Предполагая, что вы используете стандарт PSR2 прямо сейчас, вы должны создать XML-файл (например, mystandard.xml) и включить следующий контент:

 <?xml version="1.0"?> <ruleset name="MyStandard"> <description>My custom coding standard.</description> <rule ref="PSR2" /> <rule ref="PSR1.Classes.ClassDeclaration.MultipleClasses"> <severity>0</severity> </rule> </ruleset> 

Затем запустите PHP_CodeSniffer следующим образом: phpcs --standard=/path/to/mystandard.xml /path/to/code

Наличие собственного набора правил позволяет вам многое делать, включая изменение сообщений об ошибках, изменение серьезности или типа сообщения, включая проверки других стандартов и установку глобальных правил игнорирования. Подробнее здесь: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml