PHP_CodeSniffer 是很優秀的程式碼品質驗證工具,不只被用在團隊開發時維護編程標準,Open source 也廣泛使用這項工具來控管貢獻程式的品質。如果我們能夠在實際編輯程式的過程就依靠 CodeSniffer 幫助驗證則更有效率,PHPStorm 就是一套能夠在編輯過程直接整合 CodeSniffer 的工具。
安裝 CodeSniffer
先參考 在 Windows 安裝 PHP PEAR 這篇文章,將 PEAR 安裝起來,接著透過 PEAR 安裝 PHP_CodeSniffer:
$ pear install PHP_CodeSniffer
標準設定文件
安裝完成後,我們進到 PEAR 目錄下的 pear/PHP/CodeSniffer/Standards
下面可以看到預裝了幾個常用的標準設定檔,如 PSR 或 Zend 等等:
我們也可以根據專案自行編寫或是下載人家寫好的設定檔來符合不同的編碼標準。例如 Symfony2-coding-standard 或 Joomla-coding-standards。這裡我以 Joomla 的做示範,下載之後解壓縮到 PEAR 目錄下的 pear/PHP/CodeSniffer/Standards/Joomla
裡面即可
用 git clone 可能更快:
$ git clone https://github.com/joomla/coding-standards.git Joomla
設定 PHPStorm 整合 CodeSniffer
進入 PHPStorm 的 setting,找到 PHP > CodeSniffer
這一頁:
在 PHP Code Sniffer (phpcs) Path 選項挑選 CodeSniffer 的執行檔(Windows 為 phpcs.bat,Mac 為 phpcs),應該能夠在 PEAR 根目錄下找到。 (某些時候因為安裝時選項的關係,執行檔可能會被統一放到不同資料夾,要自己搜尋一下)
按下 Validate
,成功的話會跳綠字:
選擇想要的編碼標準,並直接在編輯時檢查
在 setting 中找到 Inspections > PHP > PHP Code Sniffer validation 選項,把他勾選起來。
並且在右邊的 Coding standard 按下刷新按鈕,成功的話就會出現想要的標準供我們挑選。
測試
按下儲存之後,我們就可以看到 CodeSniffer 開始及時幫我們檢測程式碼了: