成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

PHP代碼書寫規(guī)范

本篇內(nèi)容主要講解“PHP代碼書寫規(guī)范”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“PHP代碼書寫規(guī)范”吧!

創(chuàng)新互聯(lián)2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站制作、網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元志丹做網(wǎng)站,已為上家服務(wù),為志丹各地企業(yè)和個人服務(wù),聯(lián)系電話:18980820575

基本規(guī)范

先說一下最基本的東西:

  • 變量名使用駝峰命名。不懂的單詞不要用拼音,而是要查詞典找到對應(yīng)的單詞。

  • 常量命名使用大寫下劃線方式命名。如:SYSTEM_EROOR = 50000。

  • 縮進(jìn)使用Tab鍵,不要打一堆空格做縮進(jìn)。

  • 類名首字母大寫駝峰命名,需要見名知其意,注釋說明這個類的功能。例如:

PHP代碼書寫規(guī)范

  • 方法名駝峰命名,方法行數(shù)盡量控制在80行左右,注釋說明函數(shù)干嘛用的。

PHP代碼書寫規(guī)范

  • 花括號獨占一行,例如:

PHP代碼書寫規(guī)范

  • foreach慎用引用,例如以下代碼會有問題:

PHP代碼書寫規(guī)范

預(yù)期結(jié)果是輸出: 2 4 6,實際結(jié)果是2 4 4, 至于為什么可 以看我之前的文章: PHP中&符號你真的了解嗎?。 可以使用array_walk`方法避免這個問題, 示例:

PHP代碼書寫規(guī)范

  • 避免if, elese嵌套過深,很多嵌套可以通過提前終止來消除, 舉個簡單的例子:

PHP代碼書寫規(guī)范

建議使用第二種方式,不符合條件的直接返回,剩下的就是符號條件的,那么避免了在if里面寫很多代碼。

  • 多個if/else使用switch來替代,PHP8.0版本可以使用match更為簡潔。

  • phpstorm中安裝SonarLint插件。如果你寫的代碼出現(xiàn)虛線,說明不太理想,那么可以根據(jù)提示修改,相信有強迫癥的同學(xué)一定會改,久而久之代碼就很規(guī)范了。例如:

PHP代碼書寫規(guī)范

方法未使用,方法名不規(guī)范已經(jīng)告訴你了,可以快捷修改,也可以自己修改。

框架規(guī)范

  • 前面說得都是比較基礎(chǔ)的東西,接下來才是主要的內(nèi)容。

  • 相信很多同學(xué)都用過常用的thinkphplaravelyii等流行框架之一。

  • 這些框架都是MVC架構(gòu)的,看過很多人的代碼,要么把業(yè)務(wù)邏輯寫在控制器里面,要么寫在Model里面, 寫在Model里面相比寫控制器里面的還相對好一點。其實對于大型項目都不太友好。

  • 下文以Laravel框架為例。

參數(shù)驗證

  • API需要進(jìn)行參數(shù)驗證,但是參數(shù)驗證寫在哪里比較優(yōu)雅呢?可能很多人在controller定義規(guī)則,然后在調(diào)用驗證方法,那么驗證那段代碼將在每個API里面出現(xiàn),例如我同事寫的。

PHP代碼書寫規(guī)范

  • 這段代碼在每個API里面均會出現(xiàn)一次,豈不是很啰嗦,那么如何解決呢?

PHP代碼書寫規(guī)范

  • 在Laravel的http目錄下建立一個Requsts目錄,用于存放請求的參數(shù)驗證類。建立一個BaseRequest類:

PHP代碼書寫規(guī)范

比如登錄需要參數(shù)驗證再建立一個LoginRequest類繼承這個BaseRequest

PHP代碼書寫規(guī)范

  • 使用的時候只要在Controller的方法中注入這個請求類即可。

PHP代碼書寫規(guī)范

這里獲取請求參數(shù)的時候會對表單進(jìn)行驗證,否則參數(shù)驗證失敗會調(diào)用剛剛Request積累定義的方法拋Json異常,返回信息給客戶端。

控制器

控制器的主要工作負(fù)載獲取請求數(shù)據(jù)和返回內(nèi)容,不應(yīng)做更多的事情,那么可以定義一個Service層來處理業(yè)務(wù)邏輯。 所以我的控制器的代碼只有一行。

  • 在Laravel的app目錄下建立一個Services文件夾用于存放Service類,建立一個BaseService類:

PHP代碼書寫規(guī)范

然后建立一個UserService來處理用戶相關(guān)的業(yè)務(wù)邏輯。

PHP代碼書寫規(guī)范

在UserController中注入這個UserService使用:

PHP代碼書寫規(guī)范

Model

Model不建議寫業(yè)務(wù)邏輯。Model主要是用來定義一些內(nèi)容,不應(yīng)該操縱數(shù)據(jù)。

Model的數(shù)據(jù)操縱應(yīng)該放在Repository中,在Laravel的app目錄下建立一個文件夾Repositories。

定義BaseRepository:

PHP代碼書寫規(guī)范

定義UserRepository,用于用戶數(shù)據(jù)相關(guān)的操作, 在構(gòu)造方法中注入UserModel:

PHP代碼書寫規(guī)范

常量

項目中很多常量該怎么定義?

在app目錄創(chuàng)建一個Constant目錄, 再建立一個Contstant類來保存這些自定義常量。

這樣的好處是:

  • 自定義常量可以集中的管理。

  • 修改常量值的時候,只需要在這個類中找修改一次即可,代碼更新維護(hù)性好。

PHP代碼書寫規(guī)范

到此,相信大家對“PHP代碼書寫規(guī)范”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

當(dāng)前標(biāo)題:PHP代碼書寫規(guī)范
瀏覽路徑:http://jinyejixie.com/article48/pggiep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)定制網(wǎng)站、標(biāo)簽優(yōu)化品牌網(wǎng)站建設(shè)、全網(wǎng)營銷推廣域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
罗田县| 正宁县| 和静县| 上思县| 张家港市| 杂多县| 翁牛特旗| 万载县| 驻马店市| 龙里县| 禄丰县| 台东县| 晋州市| 邢台县| 韩城市| 锦屏县| 九龙县| 南昌县| 根河市| 基隆市| 兴义市| 阳西县| 滨海县| 万荣县| 济源市| 英吉沙县| 临西县| 张家界市| 南通市| 濮阳市| 六盘水市| 湾仔区| 庆安县| 菏泽市| 望谟县| 五家渠市| 辽阳县| 宁德市| 铜陵市| 乐安县| 伊金霍洛旗|