PHPCS的安裝配置及使用


良好的代碼規範能夠提升代碼可讀性,下降團隊溝通維護成本php

1.PSR標準

PSR是PHP Standards Recommendation的簡稱,這個是[php-fig](PHP Framework Interop Group)(github.com/php-fig)組織制定的一套規範。至今,php-fig已經發布了五個規範:laravel

  • PSR-0:自動加載標準,該標準已被廢棄,使用PSR-4替代git

  • PSR-1:基本的編碼風格程序員

  • PSR-2:編碼風格(更嚴格)PSR-2中文說明github

  • PSR-3:日誌記錄器接口segmentfault

  • PSR-4:自動加載bash

2.什麼是PHPCS github地址

PHP Code Sniffer 是PEAR中的一個用PHP5寫的一個PHP的代碼風格檢測器,它根據預先設定好的PHP編碼風格和規則,去檢查應用中的代碼風格狀況是否有違反一組預先設置好的編碼標準,內置了ZEND,PEAR的編碼風格規則,固然也支持本身定製。PHP CodeSniffer 是確保代碼簡潔一致的必不可少的開發工具,還能夠幫助程序員減小一些語義錯誤。php7

3.安裝PHPCS

①經過pear方式:
pear下載phpcs地址app

pear install PHP_CodeSniffer-3.4.2
若是php版本小於php7,不要安裝最新版本的phpcs,php5.6建議安裝phpcs3.0.0
複製代碼

②經過composer方式:composer

composer global require "squizlabs/php_codesniffer=*"
複製代碼

③經過brew方式(mac推薦此種方式):

brew install php-code-sniffer
複製代碼

4.手動方式使用PHPCS

phpcs  application/controller/Admin.php
phpcs  待檢測的文件
複製代碼

5.PHPStorm配置PHPCS

推薦此種方式,自動的省事

①打開Phpstorm的設置頁(File->Setting或者Ctrl+Alt+s) 到Code Sniffer頁Setting->Languages and Frameworks->PHP->Code Sniffer Mac配置的地址爲Setting->Languages and Frameworks->PHP->Quality Tools

step1.png

②配置development environment,path就是php路徑下的phpcs.bat,按下 Validate進行驗證,驗證成功後會有綠色文字提示。 PS:Mac電腦上是沒有bat文件滴,正確的路徑爲which phpcs命令找到的路徑。Mac版本若是在安裝後沒有移動phpcs的位置,則可執行文件的位置通常在/usr/local/Cellar/php-code-sniffer/3.4.2/bin/phpcs

step2.png
③配置PHPCS的標準 Setting->Editor->Inspections->PHP->Code Sniffer Mac版本的配置位置爲 Setting->Editor->Inspections->PHP->Quality tools->Code Sniffer 在右邊的 Coding standard 按下刷新按鈕,成功的話,點擊下拉按鈕就會有可供選擇的標準。

step3.png

6.案例對比

改造前

$validate = Validate::make($rule);
        $result   = $validate->check($params);
        if(!$result)
            return parent::returnData($params, $validate->getError(), ParamsConsts::STATUS_REQ_PARAM_MISSING);

        $dbSelect = Db::name('table_name')->where('is_del', ParamsConsts::DELETE_FALSE)->field(' name, email, tel, remark');

        $dbCount = clone $dbSelect;
        $resCount = $dbCount->count('aid'); unset($dbCount);
複製代碼

配置了PHPCS後的phpstorm界面

example.png

查看一下具體錯誤

example.png

修改後

example.png

7.使用 phpcbf 腳本進行修復

phpcbf 腳本修復  使用方式和phpcs一致
phpcbf  文件名
PS:只能處理代碼風格等方式,不能處理命名與代碼實現規則,因此少部分須要人爲去更正
複製代碼

8.常見錯誤

①End of line character is invalid; expected "\n" but found "\r\n"
  換行符錯誤,請切換成LF

②Expected 1 newline at end of file; 0 found
  請在文件末尾設置空白的新行

③Inline control structures are not allowed
  請修改語句的結構,好比if後面加上{},不要直接在if後一行直接寫代碼

④Line exceeds 120 characters; 
  請將語句長度限制在120字節之內

⑤Expected 1 space after IF keyword;
  請刪除語句末尾多餘的空格
複製代碼

9. 設置默認的代碼規範

phpcs --config-set default_standard PSR2

phpcbf --config-set default_standard PSR2

使用PHPCS+Git鉤子保障團隊開發代碼風格一致 segmentfault.com/a/119000001…

相關文章
相關標籤/搜索