Вопрос

Можно игнорировать некоторые части кода из файла PHP, когда он анализируется PHP_CodeSniffer?

Это было полезно?

Решение

Да, это возможно с @CodingStandardarsignOrestart и @CodingStandardsignoreend аннотации

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

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

Другие советы

Вы можете использовать комбинацию: @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

Перед версией 3.2.0 php_codesniffer использовал различный синтаксис для игнорирования частей кода из файла. Увидеть Анти Веранна и Мартин Всицка Ответы. Старый синтаксис будет удален в версии 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top