如何檢查忘記寫try...catch的PHP程式碼?
Contents
若外部API有throw exception,呼叫API的函式就必須加上try...catch
做例外處理,如Java可以在編譯的時候幫你檢查是否忘了加try…catch,但因為PHP不用編譯,所以無法靠compiler幫我們檢查,但透過PHPDoc的@thorws
與PHP Inspections
這個外掛,可以讓我們寫code的當下,PhpStorm就自動幫我們檢查是否忘了加try…catch。
Version
Laravel 5.1.24
PhpStorm 10.0.1
下載外掛
到PHP Inspections下載,檔案為Java的PhpInspectionsEA.jar
。
安裝外掛
PhpStorm -> Preferences -> Plugin -> Install plugin from disk…
載入剛剛下載的PhpInspectionsEA.jar
。
安裝完會要求啟動PhpStorm。
檢查Exception
1 | namespace App\app\Services; |
我們在第15行自行throw了一個exception。
由於PHP沒有compiler,PHP Inspection是靠PHPDoc的@thorws
去判斷該函式是否有throw exception,所以一定要加上@throws
。
若忘了加上try...catch
,PhpStorm會在code下方加上波浪警告,滑鼠指過去會顯示警告的原因。
Conclusion
套過PhpStorm與PHP Inspection外掛,我們就可以在寫code時隨時發現自己是否忘記加上try…catch,避免上線後才發現問題。
PHP Inspection事實上還有其他很強的功能,可以幫我們檢查PHP :
- architecture related issues (e.g. design pattern violations)
- possible code construct simplifications
- weak types control (important in Enterprise Applications)
- performance issues
- non-optimal, duplicate and suspicious “if” conditions
- validation of magic methods usage
- regular expressions
- validation of exception handling workflow
- compatibility issues
- variety of time-consuming bugs