推薦一款 phpcs 插件規范 Laravel 代碼 (規范從本地寫代碼到版本控制),phpcslaravel

我相信每個公司都有一套完備的代碼規范標準,但標準是標準,如何能有效的讓所有人遵守,那就要工具的輔助和實時提醒了。愛掏網 - it200.com

如前端 vue 的大家基本都會使用 ? eslint ? ?來約束我們的代碼,一旦多一個空格都會提示你有問題,當 ? ?npm run dev ?或者 npm run watch ? 就會提示你哪哪哪不符合規范。愛掏網 - it200.com

在 Laravel 開發中,照樣也有類似的工具,這也是本文的所要推薦的:

phpcs

在開始使用 phpcs ? ? 之前,我們簡單來說說 Laravel 的代碼規范標準

Laravel 代碼規范?

Laravel follows the PSR-2 coding standard and the PSR-4 autoloading standard.

來自 Laravel 的說明:https://laravel.com/

幾個代碼規范的含義?

?

9ccc0ca9ly1fs71ifshd2j20a50dhq39.jpg

?其實現在很多網站已經掛出 PSR-2 編碼規范的說明了,推薦看下面這個:

https://laravel-china.org/docs/psr/psr-2-coding-style-guide/1606?

9ccc0ca9ly1fs71j7fr85j20in0ajq6j.jpg

?但我在實際使用時,除了能夠按照上面說的規范來,還有一塊重要的內容他們沒提。愛掏網 - it200.com

文件和類注釋 ?

9ccc0ca9ly1fs71k1ow0hj20in0hi43g.jpg

?

主要包含以上內容塊:文件說明、PHP 版本號、還有就是按順序的這五要素:(category, package, author, license, link),而且這五要素排版要對齊哦,一般人我不告訴哦~~~

方法注釋 ?

9ccc0ca9ly1fs71khpemkj20if06pq4q.jpg

?主要包含:方法說明、空一行、參數塊 (類型、參數名、含義 —— 這個需要對齊)、空一行、最后?

return 類型。愛掏網 - it200.com

安裝 phpcs?

使用 phpcs 之前,還是需要先知道這個東西是什么吧?

PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.

摘自:https://github.com/squizlabs/PHP_CodeSniffer

主要包含兩個工具:phpcs 和 phpcbf (這個之后再說)。愛掏網 - it200.comphpcs 主要對 PHP、JavaScript、CSS 文件定義了一系列代碼規范標準,如我們會使用的,也是 Laravel 使用的PHP ? ?PSR-2 ?標準,能夠檢測出不符合我們定義的代碼規范的代碼,并發出警告和錯誤,當然我們也可以設置報錯的級別。愛掏網 - it200.com

對于 phpcs 的使用,主要有兩個途徑:

1、在本地開發過程中,實時對我們的代碼進行檢測,讓代碼提交版本庫時,就已經符合規范標準了;

2、在服務器對提交的代碼進行檢測,如果不符合標準的,則不入代碼庫,打回要求修改。愛掏網 - it200.com

下面我們開始說說根據不同方法,如何安裝 phpcs 工具的。愛掏網 - it200.com

composer

寫 Laravel 代碼的同學,對使用 composer 應該很熟悉了,這種方法比較推崇。愛掏網 - it200.com但主要區分為是「全局安裝」還是按「項目安裝」。愛掏網 - it200.com

這里我本人推薦采用「全局安裝」,可以在各個 IDE 上直接填入全局安裝的 phpcs 可執行路徑。愛掏網 - it200.com但如果你的版本庫是使用「git」的話,那我推薦使用「項目安裝」,下文就知道原因了。愛掏網 - it200.com

注:?我使用這種方式「全局安裝」后,發現每回都關聯不了「VSCode」,這個原因待查。愛掏網 - it200.com

?

9ccc0ca9ly1fs71nmj58uj20dc03xdga.jpg

?pear?

安裝 pear?

9ccc0ca9ly1fs71plscc6j20c901ra9u.jpg

開始安裝配置,

先選擇 1 (change the Installation Base);

輸入:/usr/local/pear

再選擇 4 (change the Binaries directory),

輸入:/usr/local/bin?

9ccc0ca9ly1fs71qhpey7j20fn048gnc.jpg

?開始安裝 ? PHP_CodeSniffer?

9ccc0ca9ly1fs71qyegeaj208b0140sh.jpg

在 MacOS 系統下:

?

9ccc0ca9ly1fs71ruunvcj20fk06441k.jpg

?在 Centos Linux 系統下安裝效果:?

9ccc0ca9ly1fs71s87uzdj20cm05376s.jpg

?此方法比較有效果,而且也符合在多系統上嘗試,比如本人同時在「Mac」和 「Linux」下都可以正常安裝和使用。愛掏網 - it200.com

注:我沒在「Windows」環境下嘗試,尚未知道效果。愛掏網 - it200.com

brew??

9ccc0ca9ly1fs71sv7ycwj209o0120sh.jpg

?

9ccc0ca9ly1fs71t8ium8j20fr04sn18.jpg

?這種方法顯然在「Mac」系統下有效了!

當然根據官網的文檔,還有其他方法,歡迎大家去嘗試:

具體可參考:https://github.com/squizlabs/PHP_CodeSniffer?中的「Installation」部分。愛掏網 - it200.com

使用 phpcs?

無論是本地還是服務器,只要我們安裝好了,自然就可以開始使用了。愛掏網 - it200.com最直觀也是最簡單的方法莫過于用命令行的方式了,如:?

9ccc0ca9ly1fs71tphjynj20bm042gle.jpg

?但想到我們是用 IDE 寫代碼的,而且是希望實時看到效果的,所以下面嘗試在幾個 IDE 下看看如何使用。愛掏網 - it200.com

安裝 VSCode 插件?

在插件界面,搜索:phpcs,安裝即可。愛掏網 - it200.com?

9ccc0ca9ly1fs71ugdetkj20iw08egnx.jpg

?參考:https://marketplace.visualstudio.com/items?itemName=ikappas.phpcs

配置插件

由于項目使用的是系統的 phpcs,所以需要在 user setting ?中配置可執行路徑和自己自定義的編寫風格?

9ccc0ca9ly1fs71vj265cj20ij0a642a.jpg

?這時候我們去看看我們的代碼界面,是不是有了 phpcs ?的提示了:

?

9ccc0ca9ly1fs71w4bxb1j20hz0crgrg.jpg

?安裝 PhpStorm 插件??

9ccc0ca9ly1fs71wo8kl0j20ih0cjtbt.jpg

?

9ccc0ca9ly1fs71wzxbbnj20ie0f0abr.jpg

?

9ccc0ca9ly1fs71xhv9znj20j40gpahw.jpg

?

9ccc0ca9ly1fs71xvek6kj20ih0ck7aq.jpg

?直接看圖,不需要做過多的說明了。愛掏網 - it200.com

基本到此,phpcs 的插件就可以使用了。愛掏網 - it200.com

版本檢測規范?

我們希望在團隊項目代碼提交版本庫之前「pre-commit」就能檢測

出不符合「PSR-2」 標準的代碼文件。愛掏網 - it200.com無論是 svn 或者 git,都能在「pre-commit」獲取提交版本庫的代碼文件,然后再利用「phpcs」去檢測每個文件是否符合規范。愛掏網 - it200.com

svn?

由于每個 svn 在服務端都有對應 hooks 文件夾,可以在「pre-commit」時,驗證代碼的規范,直接上文件,比較好理解:

?

9ccc0ca9ly1fs71ysu52wj20bt0i4mxa.jpg

?

9ccc0ca9ly1fs72052zraj20fh0ghwer.jpg

?

?

9ccc0ca9ly1fs71zaufjzj20ed0ac77r.jpg

?

這就是我們想要看到的效果了,無論 IDE 的實時提示,還是提交代碼時的檢測反饋,都會告訴我們哪里格式不符合規范了。愛掏網 - it200.com

git?

這里主要參考 WickedReports/phpcs-pre-commit-hook?https://github.com/WickedReports/phpcs-pre-commit-hook?的寫法:


主要報錯在于:

60 行: output 函數?

9ccc0ca9ly1fs722bd57uj20hq032t9z.jpg

?和?17 行:?

9ccc0ca9ly1fs722mciywj20is069wh7.jpg

?好了,我們執行 ?git commit ? 試試:?

9ccc0ca9ly1fs7235z5k8j20il09d43o.jpg

?接著我們把這幾個不規范的地方改了之后,同樣運行本地方法,返回結果:

我們再執行 git commit 試試:?

9ccc0ca9ly1fs724l22w2j20710190sp.jpg

?完美了!

注:「svn」和「git」的區別在于,svn 是放在服務器上做「pre-commit」檢測的,而「git」是在本地本項目中的,這也是上文說的,如果你用 git 做版本庫,推薦你用「composer」項目安裝的方式安裝工具。愛掏網 - it200.com

總結?


本文以本地 Mac 系統和服務器 Linux 系統為安裝端,以 VSCode 和 PHPStorm 兩大主流 IDE 作為使用端,以 svn 和 git 為版本庫為例,較為完整而又系統流程的說一說「phpcs」的使用,希望對大家有所幫助!

最后留個小問題:如果你使用 Docker 和 git,怎么做這一流程式檢測?

本文轉載自?葉梅樹,如需轉載,請向原作者發出申請,原作名稱《推薦一款 phpcs 插件規范 Laravel 代碼 (規范從本地寫代碼到版本控制)》?

9ccc0ca9ly1fs725lijgxg20hs01pt93.gif

?推薦閱讀

2024年5月新書書單(文末福利)

2024年4月新書書單

異步圖書最全Python書單

一份程序員必備的算法書單

第一本Python神經網絡編程圖書

??

長按二維碼,可以關注我們喲

每天與你分享IT好文。愛掏網 - it200.com


在“異步圖書”后臺回復“關注”,即可免費獲得2000門在線視頻課程;????????

聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
發表評論
更多 網友評論0 條評論)
暫無評論

返回頂部

主站蜘蛛池模板: 欧美国产精品va在线观看| 91av福利视频| 深夜福利gif动态图158期| 在线视频观看一区| 亚洲欧美精品一区二区| caoporn地址| 日本黄色动画片| 啊灬啊灬别停啊灬用力啊| 一二三四日本高清社区5| 男人插女人app| 国产精品视频你懂的| 亚洲一级高清在线中文字幕| 欧美黑人bbbbbbbbb| 日本亚州视频在线八a| 国产免费久久精品丫丫| 中文无码av一区二区三区| 精品国产AV无码一区二区三区| 天天综合网网欲色| 亚洲精品中文字幕无码蜜桃| **真实毛片免费观看| 日韩人妻无码一区二区三区综合部| 国产亚洲精品无码专区| xxxxx免费| 欧美地区一二三区| 国产亚洲人成网站在线观看| 中文国产成人精品久久不卡| 男人和女人做爽爽视频| 国产精品久久国产精品99盘 | 中文亚洲成a人片在线观看| 电影在线观看视频| 国产精品va在线观看无| 中文毛片无遮挡高清免费| 疯狂做受xxxx高潮视频免费| 国产高清免费在线观看| 久久精品aⅴ无码中文字字幕不卡 久久精品aⅴ无码中文字字幕重口 | 国产SUV精品一区二区883| 99热这里只有精品6免费| 日韩高清国产一区在线| 免费香蕉依人在线视频久| a拍拍男女免费看全片| 成人18免费网站在线观看|