Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从sonarqube分析中排除一些php代码行_Php_Sonarqube_Code Analysis - Fatal编程技术网

从sonarqube分析中排除一些php代码行

从sonarqube分析中排除一些php代码行,php,sonarqube,code-analysis,Php,Sonarqube,Code Analysis,有没有一种方法可以在不排除整个源代码文件的情况下从sonarqube分析中排除某些代码行?也许有注释或者类似的东西 我将给出一个具体的示例,其中我需要排除未使用函数参数的特定代码气味: 我实现了如下验证方法: public function validateTruth(string $attribute, $value) : bool { $acceptable = [ '0', 0, 'false', false,

有没有一种方法可以在不排除整个源代码文件的情况下从sonarqube分析中排除某些代码行?也许有注释或者类似的东西

我将给出一个具体的示例,其中我需要排除未使用函数参数的特定代码气味:

我实现了如下验证方法:

public function validateTruth(string $attribute, $value) : bool
{
    $acceptable = [
        '0',
        0,
        'false',
        false,
        '1',
        1,
        'true',
        true,
        'no',
        'yes',
    ];

    return in_array($value, $acceptable, true);
}
要使用extend方法扩展\Lightning\Contracts\Validation\Factory,请执行以下操作:

$validationFactory->extend(
    'truth',
    Validator::class . @validateTruth',
    'The :attribute field must be some kind of truth value.'
);
我的实现没有使用所有必需的参数,但我不能只省略第一个参数。如果没有$attribute参数,extend将无法与回调方法一起工作。因此extend方法显然需要一个带有特定参数集的回调,但它不提供接口或类似的东西,因此缺少的参数将自动从sonarqube中排除


有没有一种方法可以仅排除此代码气味,而不将整个函数或文件排除在sonarqube分析之外?我更喜欢源代码中的解决方案,因为我们在开发生命周期中使用了sonarqube的不同实例,因此在webfrontend中标记此类代码气味将更难维护。

您可以通过web ui解决问题,或者,如果您更喜欢在代码中解决问题,请使用
NOSONAR
注释标记它


有关更多信息,请参阅。

感谢您的快速回复。建议的带有//NOSONAR注释的解决方案似乎适用于sonar runner。但是这个评论在IDE中似乎不起作用(至少对于PHP来说),尽管在@GordonGünther上有一个关于IntelliJ的Sonarint的关闭问题,您使用的是哪个IDE?在我的IntelliJ中,我刚刚验证了,
NOSONAR
工作正常。不过:IntelliJ将继续在这些方面提出自己的问题。试试这个:
long i=0l(1个IntelliJ问题+1个SonarQube问题)以及更高版本:
长i=0l//NOSONAR
(IntelliJ问题1)。我正在使用PhpStorm,在重新启动IDE后,它工作了。