點燈坊

學而時習之,不亦悅乎

如何在 PhpStorm 使用 SonarLint ?

Sam Xiao's Avatar 2019-05-19

SonarQube 除了搭配 Jenkins 檢查程式碼品質外,還可在 IDE 中使用 SonarLint,讓 Developer 在開發階段就及早發現可能的 Bugs、Vulenrability、Code Smell 與 Duplication,本文將介紹 SonarLint + PhpStorm。

Version

macOS High Sierra 10.13.4
SonarQube 6.7.2 LTS
PhpStorm 2018.1
SonarLint 3.3.0.2482
PHP 7.1.14
Laravel 5.6.17

SonarLint

sonarlint000

  1. PhpStorm -> Preferences … -> Plugins
  2. Browse repositories…

sonarlint001

  1. 輸入 SonarLint
  2. Install 安裝

sonarlint002

  1. 下載完 SonarLint 後,按 Restart PhpStorm

General Setting

Settings

sonarlint003

  1. PhpStorm -> Preferences -> Other Settings -> SonarLint General Settings
  2. 選擇 Settings tab
  3. 勾選 Automatically trigger analysis,SonarLint 將自動檢查目前檔案
  4. SonarQube servers+ 新增 server

sonarlint004

  1. 為設定取一個名字
  2. 輸入 SonarQube 的網址
  3. Next 繼續

sonarlint005

  1. Authentication type 選擇 Login / Password
  2. Login / Password 填預設的 admin/admin
  3. Next 繼續

sonarlint006

  1. Finish 完成設定

sonarlint007

  1. Update binding 從 SonarQube server 更新 project list、profile、rule 到本機

File Exclusions

sonarlint008

  1. 選擇 File Exclusions tab,若每個專案都有特定的目錄不想被 SonarLint 檢查,可統一在此設定

Project Setting

Bind to SonarQube project

sonarlint009

  1. PhpStorm -> Preferences -> Other Settings -> SonarLint Project Settings
  2. 選擇 Bind to SonarQube project tab
  3. Enable binding to remote SonarQube server 打勾,將本地專與 SonarQube server 端綁定
  4. Bind to server 選擇剛剛建立的 MySonarQube
  5. SonarQube project 選擇欲綁定的 SonarQube 專案

File Exclusion

sonarlint010

  1. 選擇 File Exclusions tab,若專案中有特定的目錄不想被 SonarLint 檢查,可在此設定
  2. OK 儲存設定

Automatic Analysis

sonarlint011

SonarQube 檢查出在 app/Console/Kernel.php 有 code smell,不該在程式碼有註解掉的 code,而應該直接刪除,由 Git 作版控。

sonarlint012

SonarLint 能在 PhpStorm 內即時的檢查出目前檔案的 issue。

  1. 下方選擇 SonarLint tab
  2. 有問題的 code
  3. SonarLint 的錯誤訊息,與 SonarQube server 完全一樣,
  4. 解釋該 rule 檢查理由

Conclusion

  • 有了 SonarLint,developer 就能更即時的獲得 SonarQube 建議,養成 clean code 好習慣