2017-07-19 34 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後。 –