Игнорировать фрагменты кода в PHP_CodeSniffer - PullRequest
48 голосов
/ 29 ноября 2010

Можно игнорировать некоторые части кода из php-файла, когда он анализируется с помощью PHP_CodeSniffer?

Ответы [ 3 ]

76 голосов
/ 29 ноября 2010

Да, это возможно с аннотациями @codingStandardsIgnoreStart и @codingStandardsIgnoreEnd

<?php
some_code();
// @codingStandardsIgnoreStart
this_will_be_ignored();
// @codingStandardsIgnoreEnd
some_other_code();

Это также описано в документации.

31 голосов
/ 10 июня 2015

Вы можете использовать комбинацию: @codingStandardsIgnoreStart и @codingStandardsIgnoreEnd или @codingStandardsIgnoreLine.

Пример:

<?php

command1();
// @codingStandardsIgnoreStart
command2(); // this line will be ignored by Codesniffer
command3(); // this one too
command4(); // this one too
// @codingStandardsIgnoreEnd

command6();

// @codingStandardsIgnoreLine
command7(); // this line will be ignored by Codesniffer
5 голосов
/ 18 октября 2018

До версии 3.2.0 PHP_CodeSniffer использовал другой синтаксис для игнорирования частей кода из файла. См. Anti Veeranna и Martin Vseticka ответов. Старый синтаксис будет удален в версии 4.0

PHP_CodeSniffer теперь использует комментарии // phpcs:disable и // phpcs:enable для игнорирования частей файлов и // phpcs:ignore для игнорирования одной строки.

Теперь также возможно отключить или включить только определенные коды сообщений об ошибках, сниффы, категории сниффов или целые стандарты кодирования. Вы должны указать их после комментариев. При необходимости вы можете добавить примечание, объясняющее, почему сниффы отключаются и повторно включаются с помощью разделителя --.

<?php

/* Example: Ignoring parts of file for all sniffs */
$xmlPackage = new XMLPackage;
// phpcs:disable
$xmlPackage['error_code'] = get_default_error_code_value();
$xmlPackage->send();
// phpcs:enable

/* Example: Ignoring parts of file for only specific sniffs */
// phpcs:disable Generic.Commenting.Todo.Found
$xmlPackage = new XMLPackage;
$xmlPackage['error_code'] = get_default_error_code_value();
// TODO: Add an error message here.
$xmlPackage->send();
// phpcs:enable

/* Example: Ignoring next line */
// phpcs:ignore
$foo = [1,2,3];
bar($foo, false);

/* Example: Ignoring current line */
$foo = [1,2,3]; // phpcs:ignore
bar($foo, false);

/* Example: Ignoring one line for only specific sniffs */
// phpcs:ignore Squiz.Arrays.ArrayDeclaration.SingleLineNotAllowed
$foo = [1,2,3];
bar($foo, false);

/* Example: Optional note */ 
// phpcs:disable PEAR,Squiz.Arrays -- this isn't our code
$foo = [1,2,3];
bar($foo,true);
// phpcs:enable PEAR.Functions.FunctionCallSignature -- check function calls again
bar($foo,false);
// phpcs:enable -- this is out code again, so turn everything back on

Подробнее см. Документация PHP_CodeSniffer .

...