Php Inspections 是一款 PhpStorm 的開源外掛,用作靜態分析
根據官方介紹,它可以檢測或覆蓋到:
- 結構相關問題
- 弱型別控制和可能的程式碼結構簡化
- 效能問題
- 非最佳、重複、可疑的
if
條件判斷 - 正規表示式
- 相容性問題
- 各類長耗時操作
- PhpUnit API 單元測試
- 安全問題
- 等等...
安裝
在 PHPStorm 的 Setting -> Plugins -> Marketplace
中搜尋並安裝 Php Inspections
,然後重啟 IDE。
使用
在安裝好並重啟 IDE 後,Php Inspections 的氣泡提示功能就已自動啟用
氣泡提示及快速修復
當 Php Inspections 檢測到程式碼問題時,會用灰色波浪線提示使用者。將滑鼠懸浮在波浪線上時,會彈出氣泡並提供快速修復程式碼的功能,只需點選左鍵就可修復
圖中程式碼一共有三處問題:
- 在使用 ‘==’ 等號運算子判斷時,其返回結果已經是
bool
值了,不需要用三元運算子再處理一次,可以簡化 - 該函式的返回值型別是確定的,所以可以安全地宣告其返回值型別為
bool
- Php Inspections 建議使用
===
代替==
,這個視業務場景決定是否使用全等號,所以 Php Inspections 也沒有提供自動修復的選項
對整個專案進行分析
在 Laravel 專案中程式碼主要存在於 app
目錄下,所以在選擇分析範圍時遞迴包含 app
目錄就行,或者也可以分析整個專案,但一定要將 node_modules
vendor
目錄遞迴排除,不然分析過程會很耗時,也會多出些不必要的分析結果
執行後在右下角會顯示分析進度,等待幾分鐘會彈出分析報告
可以在報告中選擇某一個問題直接修復:
(簡化 if 結構)
也可以選擇某一類問題全部修復:
(移除方法中未使用的引數,簡化程式碼)
其他
Php Inspections 的靜態分析可以發現專案中存在的許多問題,在編寫程式碼時也可以通過波浪線和氣泡提升程式碼質量
此外也可以使用 Composer 擴充包 nunomaduro/larastan 作程式碼靜態分析