良好的代碼規範能夠提升代碼可讀性,下降團隊溝通維護成本php
PSR是PHP Standards Recommendation的簡稱,這個是[php-fig](PHP Framework Interop Group)(github.com/php-fig)組織制定的一套規範。至今,php-fig已經發布了五個規範:laravel
PHP Code Sniffer 是PEAR中的一個用PHP5寫的一個PHP的代碼風格檢測器,它根據預先設定好的PHP編碼風格和規則,去檢查應用中的代碼風格狀況是否有違反一組預先設置好的編碼標準,內置了ZEND,PEAR的編碼風格規則,固然也支持本身定製。PHP CodeSniffer 是確保代碼簡潔一致的必不可少的開發工具,還能夠幫助程序員減小一些語義錯誤。php7
①經過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
複製代碼
phpcs application/controller/Admin.php
phpcs 待檢測的文件
複製代碼
推薦此種方式,自動的省事
①打開Phpstorm的設置頁(File->Setting或者Ctrl+Alt+s) 到Code Sniffer頁Setting->Languages and Frameworks->PHP->Code Sniffer
Mac配置的地址爲Setting->Languages and Frameworks->PHP->Quality Tools
②配置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
Setting->Editor->Inspections->PHP->Code Sniffer
Mac版本的配置位置爲
Setting->Editor->Inspections->PHP->Quality tools->Code Sniffer
在右邊的 Coding standard 按下刷新按鈕,成功的話,點擊下拉按鈕就會有可供選擇的標準。
改造前
$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界面
查看一下具體錯誤
修改後
phpcbf 腳本修復 使用方式和phpcs一致
phpcbf 文件名
PS:只能處理代碼風格等方式,不能處理命名與代碼實現規則,因此少部分須要人爲去更正
複製代碼
①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;
請刪除語句末尾多餘的空格
複製代碼
phpcs --config-set default_standard PSR2
phpcbf --config-set default_standard PSR2
使用PHPCS+Git鉤子保障團隊開發代碼風格一致 segmentfault.com/a/119000001…