Подтвердить что ты не робот

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

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

class MyClassImpl implements MyInterface
{
    // ...
}

class MyClassTest extends \PHPUnit_Framework_TestCase
{
    // ...
}
4b9b3361

Ответ 1

Вы можете заставить 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