Игнорирование неиспользуемого параметра с помощью сниффера кода


11

Я использую codeniffer со стандартом EcgM2 на своем собственном расширении и получаю предупреждение

Параметр метода $contextникогда не используется

для InstallSchema.phpфайла.
Как я могу убрать это предупреждение?
Мой метод выглядит так (обратите внимание SuppressWarningsна верхнюю часть):

/**
 * {@inheritdoc}
 * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
 * @SuppressWarnings(PHPMD.UnusedFormalParameter)
 */
public function install(SchemaSetupInterface $setup, ModuleContextInterface $context)
{
    //my install script here that does not use the parameter $context
}

Ответы:


9

Я смог спрятать грязь под ковриком вот так:

// @codingStandardsIgnoreStart
public function install(SchemaSetupInterface $setup, ModuleContextInterface $context) 
{
// @codingStandardsIgnoreEnd
....
}

Я не горжусь этим, но это работает.


добавление // @codingStandardsIgnoreEndмежду сигнатурой метода и открывающей фигурной скобкой вызовет предупреждение phpcs
Раду

верно. его можно добавить после открывающей скобки. Я отредактировал ответ.
Мариус

4

Обновите phpcs (squizlabs / PHP_CodeSniffer) до последней версии (v3.2.3 на 2017-03-06) и используйте как:

/**
 * {@inheritdoc}
 */
// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter
public function install(SchemaSetupInterface $setup, ModuleContextInterface $context)
{
    //my install script here that does not use the parameter $context
}

2

Я почти уверен, что вам нужно использовать правило предупреждения о подавлении:

Generic.CodeAnalysis.UnusedFunctionParameter

Так что это должен быть код для использования в вашем Docblock PHP:

@SuppressWarnings(Generic.CodeAnalysis.UnusedFunctionParameter)

спасибо, что выкопали это, но это не имеет никакого эффекта
Marius

1
@Marius Хмм, это раздражает
Рафаэль в Digital Pianism

все еще не работает :(
Хаим

1

Я думаю, что это правильный путь:

/**
 * {@inheritdoc}
 * phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter
 */
public function install(SchemaSetupInterface $setup, ModuleContextInterface $context)
{
    //my install script here that does not use the parameter $context
}

0

На всякий случай, если у кого-то такая же конфигурация, он работает для меня, но с опциями SuppressWarnings от OP! Никакой другой ответ не сработал.

Так что на @SuppressWarnings(PHPMD.UnusedFormalParameter)самом деле работает с PHPMD.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.