在 PhpStorm 中使用 PHP Inspections 進行程式碼靜態分析

varro發表於2019-12-28

Php Inspections 是一款 PhpStorm 的開源外掛,用作靜態分析

根據官方介紹,它可以檢測或覆蓋到:

  • 結構相關問題
  • 弱型別控制和可能的程式碼結構簡化
  • 效能問題
  • 非最佳、重複、可疑的 if 條件判斷
  • 正規表示式
  • 相容性問題
  • 各類長耗時操作
  • PhpUnit API 單元測試
  • 安全問題
  • 等等...

安裝

在 PHPStorm 的 Setting -> Plugins -> Marketplace 中搜尋並安裝 Php Inspections,然後重啟 IDE。

使用

在安裝好並重啟 IDE 後,Php Inspections 的氣泡提示功能就已自動啟用

氣泡提示及快速修復

當 Php Inspections 檢測到程式碼問題時,會用灰色波浪線提示使用者。將滑鼠懸浮在波浪線上時,會彈出氣泡並提供快速修復程式碼的功能,只需點選左鍵就可修復

圖中程式碼一共有三處問題:

  1. 在使用 ‘==’ 等號運算子判斷時,其返回結果已經是 bool 值了,不需要用三元運算子再處理一次,可以簡化
  2. 該函式的返回值型別是確定的,所以可以安全地宣告其返回值型別為 bool
  3. Php Inspections 建議使用 === 代替 ==,這個視業務場景決定是否使用全等號,所以 Php Inspections 也沒有提供自動修復的選項

對整個專案進行分析

在 Laravel 專案中程式碼主要存在於 app 目錄下,所以在選擇分析範圍時遞迴包含 app 目錄就行,或者也可以分析整個專案,但一定要將 node_modules vendor 目錄遞迴排除,不然分析過程會很耗時,也會多出些不必要的分析結果

執行後在右下角會顯示分析進度,等待幾分鐘會彈出分析報告

可以在報告中選擇某一個問題直接修復:

(簡化 if 結構)

也可以選擇某一類問題全部修復:

(移除方法中未使用的引數,簡化程式碼)

其他

Php Inspections 的靜態分析可以發現專案中存在的許多問題,在編寫程式碼時也可以通過波浪線和氣泡提升程式碼質量

此外也可以使用 Composer 擴充包 nunomaduro/larastan 作程式碼靜態分析

原文連結:在 PhpStorm 中使用 Php Inspections 進行程式碼靜態分析

相關文章