創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),橋西企業(yè)網(wǎng)站建設(shè),橋西品牌網(wǎng)站建設(shè),網(wǎng)站定制,橋西網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,橋西網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。這篇文章將為大家詳細(xì)講解有關(guān)如何用PHP_CodeSniffer檢查代碼規(guī)范,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
PHP_CodeSniffer
是一個(gè)代碼風(fēng)格檢測(cè)工具。它包含兩類腳本,phpcs
和 phpcbf
(GitHub地址)。
phpcs
腳本對(duì) PHP
、JavaScript
、CSS
文件定義了一系列的代碼規(guī)范(通常使用官方的代碼規(guī)范標(biāo)準(zhǔn),比如 PHP
的 PSR2
),能夠檢測(cè)出不符合代碼規(guī)范的代碼并發(fā)出警告或報(bào)錯(cuò)(可設(shè)置報(bào)錯(cuò)等級(jí))。
phpcbf
腳本能自動(dòng)修正代碼格式上不符合規(guī)范的部分。比如 PSR2
規(guī)范中對(duì)每一個(gè) PHP
文件的結(jié)尾都需要有一行空行,那么運(yùn)行這個(gè)腳本后就能自動(dòng)在結(jié)尾處加上一行空行。
安裝
推薦使用 composer
來安裝:
composer global require "squizlabs/php_codesniffer=*"
安裝完后就會(huì)在全局的 Vendor
目錄下的 bin
中生成兩個(gè)軟鏈接:
phpcbf -> ../squizlabs/php_codesniffer/bin/phpcbf phpcs -> ../squizlabs/php_codesniffer/bin/phpcs
如果你不知道全局 Vendor
目錄在哪,用下這個(gè)命令吧:
composer global config bin-dir --absolute
命令行使用
到這一步,其實(shí)你就可以愉快的使用這兩個(gè)命令了:
哦,不過如果要全局使用這兩個(gè)命令那還是做個(gè)軟鏈接放在 /usr/local/bin
下吧~
$ phpcs test.php FILE: /Users/stephen/Develop/Code/test.php -------------------------------------------------------------------------------------------- FOUND 2 ERRORS AFFECTING 2 LINES -------------------------------------------------------------------------------------------- 2 | ERROR | [ ] Missing file doc comment 3 | ERROR | [x] TRUE, FALSE and NULL must be lowercase; expected "false" but found "FALSE" -------------------------------------------------------------------------------------------- PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY -------------------------------------------------------------------------------------------- Time: 45ms; Memory: 4Mb $ phpcbf test.php PHPCBF RESULT SUMMARY ---------------------------------------------------------------------- FILE FIXED REMAINING ---------------------------------------------------------------------- /Users/stephen/Develop/Code/test.php 1 1 ---------------------------------------------------------------------- A TOTAL OF 1 ERROR WERE FIXED IN 1 FILE ---------------------------------------------------------------------- Time: 49ms; Memory: 4Mb
Sublime Text 中集成
安裝插件
前提 Package Control
要安裝好,這個(gè)你肯定沒問題的(莫名的自信,逃)
安裝 phpcs
這個(gè)插件,然后打開這個(gè)插件的 Settings - User
和 Settings - Default
,將后者的內(nèi)容全部復(fù)制到前者。
配置插件
將以下這幾個(gè)配置項(xiàng)配置一下:
當(dāng)前環(huán)境中 php
的執(zhí)行路徑
"phpcs_php_prefix_path": "/usr/bin/php",
當(dāng)前環(huán)境中 phpcs
的執(zhí)行路徑
"phpcs_executable_path": "~/.composer/vendor/bin/phpcs",
執(zhí)行腳本時(shí)額外添加的參數(shù),一般以 PSR2
代碼規(guī)范作為標(biāo)準(zhǔn),你也可以選擇 PSR1
、PEAR
等
"phpcs_additional_args": { "--standard": "PSR2", "-n": "" },
當(dāng)前環(huán)境中 phpcbf
的執(zhí)行路徑
"phpcbf_executable_path": "/Users/stephen/.composer/vendor/bin/phpcbf",
開啟保存就執(zhí)行 cbf
腳本功能
"phpcbf_on_save": true,
現(xiàn)在就可以愉快的玩耍了,編輯完 .php
后綴的文件保存后就會(huì)自動(dòng)回復(fù)修正代碼不規(guī)范的地方。
這個(gè)插件還有其他代碼規(guī)范可以設(shè)置的地方,比如 PHP Mess Detector settings
、PHP Linter settings
、PHP Scheck settings
下次在研究其他幾個(gè),目前是夠我用了,逃)
PhpStrom 中集成
配置 Code Sniffer
在 Settings -> Languages & Frameworks -> PHP -> Code Sniffer 中對(duì) phpcs
進(jìn)行配置
點(diǎn)擊 Configuration: Local
旁邊的 ...
,將當(dāng)前環(huán)境的 phpcs
執(zhí)行腳本所在路徑配置進(jìn)去,旁邊有一個(gè) Validate
按鈕可以進(jìn)行驗(yàn)證,其他兩個(gè)參數(shù)默認(rèn)就好,這里也稍微說一下吧。
Maxumum number of messages per file[1...100]
:每個(gè)文件最多顯示不符合代碼規(guī)范的條數(shù),一般出現(xiàn)50個(gè)了那你有很多工作可以做了,其實(shí)10個(gè)就夠了,尤其對(duì)我這種代碼潔癖和強(qiáng)迫癥晚期的人來說一個(gè)足矣 。。。
Tool process timeout, sec[1...30]
:腳本執(zhí)行的超時(shí)時(shí)間
開啟驗(yàn)證
在 Settings -> Editor -> Inspections 中進(jìn)行開啟
找到 PHP -> PHP Code Sniffer validation 選項(xiàng),對(duì)其打鉤,在右側(cè)進(jìn)行詳細(xì)配置
我是將 Options -> Show warnings as: Error 開啟了,當(dāng)然你也可以選擇 Warnning,提示級(jí)別高一點(diǎn)能夠強(qiáng)迫自己,沒啥不好的吧~
Coding standard 依舊是選擇 PSR2,如果找不到這個(gè)選項(xiàng),記得點(diǎn)一下緊挨著的刷新按鈕。
自動(dòng)修復(fù)
我找了半天沒發(fā)現(xiàn) PhpStrom
有支持 phpcbf
的可用選項(xiàng),所以只能通過 External Tools
來實(shí)現(xiàn)了。
在 Settings -> Tools -> External Tools 中進(jìn)行添加,下面是我的一個(gè)示例,基本可以照搬 :)
Parameter | Value |
---|---|
Name | phpcbf |
Description | Automatically correct coding standard violations. |
Program | phpcbf |
Parameters | --standard=PSR2 "$FileDir$/$FileName$" |
現(xiàn)在就可以在菜單欄上的 Tools -> External Tools 中找到它并愉快的使用了。
亮哥,這樣很不方便誒。。。
那就加一個(gè)快捷鍵把。。。
在 Settings -> Keymap -> External Tools -> phpcbf 中進(jìn)行添加快捷鍵操作,我設(shè)置的是 Option + F
,或者 Windows 上的 Alt + F
。
蜜汁延伸
之前沒用 phpcbf
,代碼自動(dòng)修復(fù)使用的是 php-cs-fixer
,但后來發(fā)現(xiàn)兩者功能差不多,所以秉著能少一個(gè)包就少一個(gè)包的原則,放棄了 php-cs-fixer
。
關(guān)于如何用PHP_CodeSniffer檢查代碼規(guī)范就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。