成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PHP 系列:代碼規(guī)范之 Code Sniffer

0xE7A38A / 661人閱讀

摘要:腳本對文件定義了一系列的代碼規(guī)范通常使用官方的代碼規(guī)范標(biāo)準(zhǔn),比如的,能夠檢測出不符合代碼規(guī)范的代碼并發(fā)出警告或報(bào)錯(cuò)可設(shè)置報(bào)錯(cuò)等級。比如規(guī)范中對每一個(gè)文件的結(jié)尾都需要有一行空行,那么運(yùn)行這個(gè)腳本后就能自動在結(jié)尾處加上一行空行。

有些同學(xué)可能還沒聽過這東西,大概介紹一下:

PHP_CodeSniffer 是一個(gè)代碼風(fēng)格檢測工具。它包含兩類腳本,phpcsphpcbf(GitHub地址)。

phpcs 腳本對 PHP、JavaScriptCSS 文件定義了一系列的代碼規(guī)范(通常使用官方的代碼規(guī)范標(biāo)準(zhǔn),比如 PHPPSR2),能夠檢測出不符合代碼規(guī)范的代碼并發(fā)出警告或報(bào)錯(cuò)(可設(shè)置報(bào)錯(cuò)等級)。

phpcbf 腳本能自動修正代碼格式上不符合規(guī)范的部分。比如 PSR2 規(guī)范中對每一個(gè) PHP 文件的結(jié)尾都需要有一行空行,那么運(yùn)行這個(gè)腳本后就能自動在結(jié)尾處加上一行空行。

安裝

推薦使用 composer 來安裝:

composer global require "squizlabs/php_codesniffer=*"

安裝完后就會在全局的 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 - UserSettings - 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),你也可以選擇 PSR1PEAR

"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 后綴的文件保存后就會自動回復(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 中對 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è)就夠了,尤其對我這種代碼潔癖和強(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),對其打鉤,在右側(cè)進(jìn)行詳細(xì)配置

我是將 Options -> Show warnings as: Error 開啟了,當(dāng)然你也可以選擇 Warnning,提示級別高一點(diǎn)能夠強(qiáng)迫自己,沒啥不好的吧~

Coding standard 依舊是選擇 PSR2,如果找不到這個(gè)選項(xiàng),記得點(diǎn)一下緊挨著的刷新按鈕。

自動修復(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,代碼自動修復(fù)使用的是 php-cs-fixer,但后來發(fā)現(xiàn)兩者功能差不多,所以秉著能少一個(gè)包就少一個(gè)包的原則,放棄了 php-cs-fixer。

有興趣的自行拓展了解~

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/25922.html

相關(guān)文章

  • PHP代碼修正CodeSniffer

    摘要:它包含兩類腳本,和地址腳本對文件定義了一系列的代碼規(guī)范通常使用官方的代碼規(guī)范標(biāo)準(zhǔn),比如的,能夠檢測出不符合代碼規(guī)范的代碼并發(fā)出警告或報(bào)錯(cuò)可設(shè)置報(bào)錯(cuò)等級。腳本能自動修正代碼格式上不符合規(guī)范的部分。 Last-Modified: 2019年5月10日13:59:27 參考鏈接 PHP開發(fā)規(guī)范之使用phpcbf腳本自動修正代碼格式 在PhpStorm中使用PSR2編碼規(guī)范phpcbf腳本自...

    khs1994 評論0 收藏0
  • PHP工具篇:PHPStorm IDE使用CodeSniffer代碼規(guī)范化管理

    摘要:使用進(jìn)行代碼規(guī)范化管理是一個(gè)優(yōu)秀的代碼風(fēng)格檢測工具定義了一系列的代碼規(guī)范通常使用官方的代碼規(guī)范標(biāo)準(zhǔn),比如的能夠檢測出不符合代碼規(guī)范的代碼并發(fā)出警告或報(bào)錯(cuò)可設(shè)置報(bào)錯(cuò)等級常被用作團(tuán)隊(duì)開發(fā)時(shí)維護(hù)編碼風(fēng)格以及標(biāo)準(zhǔn)。 PHPStorm IDE使用CodeSniffer進(jìn)行代碼規(guī)范化管理 PHP_CodeSniffer是一個(gè)優(yōu)秀的代碼風(fēng)格檢測工具,定義了一系列的代碼規(guī)范(通常使用官方的代碼規(guī)范標(biāo)準(zhǔn)...

    Jonathan Shieber 評論0 收藏0
  • PHP 規(guī)范說明與工具

    摘要:今天這篇分享將簡單地梳理一下規(guī)范,并介紹一個(gè)代碼檢查工具,結(jié)合以及進(jìn)行實(shí)踐。目前流行的一些規(guī)范是的簡寫,由組織制定的規(guī)范,是開發(fā)的實(shí)踐標(biāo)準(zhǔn)。目前已表決通過了套標(biāo)準(zhǔn),已經(jīng)得到大部分框架的支持和認(rèn)可。 > 作為一個(gè)新手,寫出規(guī)范的代碼也是一門必修課,除了閱讀相應(yīng)的代碼規(guī)范文檔之外,充分利用相關(guān)的工具能使得進(jìn)階之路事半功倍。今天這篇分享將簡單地梳理一下 PHP 規(guī)范,并介紹一個(gè)代碼檢查工具 ...

    snowLu 評論0 收藏0
  • PHP最佳實(shí)踐系列標(biāo)準(zhǔn)

    摘要:框架之間通過接口自動加載和標(biāo)準(zhǔn)的編碼風(fēng)格進(jìn)行合作。該規(guī)范的精髓是把命名空間的前綴和系統(tǒng)中的目錄對應(yīng)起來。 PHP-FIG 1).即PHP Framework Interop Group。這個(gè)組織發(fā)布推薦的規(guī)范,而不是強(qiáng)制規(guī)范。2).PHP-FIG的使命是實(shí)現(xiàn)框架的互操作性??蚣艿幕ゲ僮餍灾傅氖峭ㄟ^自動加載機(jī)制、接口和標(biāo)準(zhǔn)的風(fēng)格,讓框架互相合作。3).框架之間通過接口、自動加載和標(biāo)準(zhǔn)的編...

    DoINsiSt 評論0 收藏0
  • PHP 標(biāo)準(zhǔn)規(guī)范

    摘要:標(biāo)準(zhǔn)規(guī)范簡介是的簡寫,由組織制定的規(guī)范,是開發(fā)的實(shí)踐標(biāo)準(zhǔn)。具體標(biāo)準(zhǔn)有有了統(tǒng)一編碼風(fēng)格規(guī)范,更有利于查看和學(xué)習(xí)各個(gè)框架或類庫,不不需要每次都適應(yīng)新的編碼風(fēng)格。同時(shí)在開發(fā)團(tuán)隊(duì)內(nèi)部使用統(tǒng)一的編碼規(guī)范更有利于代碼審查版本控制團(tuán)隊(duì)內(nèi)部交流。 PHP 標(biāo)準(zhǔn)規(guī)范 PSR PSR 簡介 PSR 是 PHP Standard Recommendations 的簡寫,由 PHP FIG 組織制定的 PHP...

    FuisonDesign 評論0 收藏0

發(fā)表評論

0條評論

0xE7A38A

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<