使用代码嗅探器忽略未使用的参数


11

我在自定义扩展程序上运行具有EcgM2标准的codeniffer,并且收到警告

方法参数$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
}

Answers:


9

我能够像这样将地毯下的污物隐藏起来:

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

我不为此感到骄傲,但它确实有效。


// @codingStandardsIgnoreEnd在方法签名和大括号之间添加会引起phpcs警告-phpcs:大括号应在声明后的行上;找到1个空白行
Radu

对。可以在开括号后面添加。我编辑了答案。
Marius

4

将phpcs(squizlabs / PHP_CodeSniffer)更新到最新版本(2017年3月6日的v3.2.3),使用方法如下:

/**
 * {@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

因此,这应该是在PHP Docblock中使用的代码:

@SuppressWarnings(Generic.CodeAnalysis.UnusedFunctionParameter)

感谢您对此进行深入研究,但没有效果
Marius

1
@Marius hmm,这很烦人
Raphael在Digital Pianism上2016年

仍然无法正常工作:(
Haim

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

万一有人配置相同,可以使用OP的SuppressWarnings!没有其他答案。

因此@SuppressWarnings(PHPMD.UnusedFormalParameter)实际上可以与PHPMD一起使用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.