2017-07-19 91 views
0

是有办法排除来自sonarqube分析一些代码行,不排除整个源代码文件?也许有一个注释或类似的东西?排除的PHP代码的某些行从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); 
} 

以扩展\照亮\合同\验证\厂与扩展方法:

$validationFactory->extend(
    'truth', 
    Validator::class . @validateTruth', 
    'The :attribute field must be some kind of truth value.' 
); 

我实现不使用所有必需的参数,但我不能只是省略了第一个参数。没有$ attribute参数的情况下,这个扩展将无法使用回调方法。所以扩展方法显然需要一个具有一定参数集的回调函数,但它不提供一个接口或类似的东西,所以缺少的参数会自动从sonarqube中排除。

是有办法排除仅此代码味道,但不排除从sonarqube分析整体功能或文件?我更喜欢源代码中的解决方案,因为我们在开发生命周期中使用了不同的sonarqube实例,所以在web前端中标记这样的代码会更难以维护。

回答

0

您可以通过Web的用户界面解决这个问题,或者,如果你喜欢做的代码,用NOSONAR注释标记它。

更多信息请参见the official FAQ

+0

感谢您的快速反应。带有// NOSONAR评论的建议解决方案似乎适用于声纳跑步者。但此评论似乎并不在IDE中工作(至少对于PHP)虽然有对SonarLint的IntelliJ一个封闭的问题在https://jira.sonarsource.com/browse/SLI-20 –

+0

@GordonGünther哪个IDE是你在用吗?在我刚刚验证的IntelliJ中,'NOSONAR'正常工作。尽管如此,IntelliJ将继续在这些方面提高自己的问题。试试这个:'long i = 0l;'(1个IntelliJ问题+ 1个SonarQube问题),然后:'long i = 0l; // NOSONAR'(1个IntelliJ问题)。 – slartidan

+0

我正在使用PhpStorm,并且在重新启动它的IDE后。 –