您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“PHP代碼書寫規(guī)范”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“PHP代碼書寫規(guī)范”吧!
先說一下最基本的東西:
變量名使用駝峰命名。不懂的單詞不要用拼音,而是要查詞典找到對應(yīng)的單詞。
常量命名使用大寫下劃線方式命名。如:SYSTEM_EROOR = 50000
。
縮進(jìn)使用Tab鍵,不要打一堆空格做縮進(jìn)。
類名首字母大寫駝峰命名,需要見名知其意,注釋說明這個(gè)類的功能。例如:
方法名駝峰命名,方法行數(shù)盡量控制在80行左右,注釋說明函數(shù)干嘛用的。
花括號獨(dú)占一行,例如:
foreach慎用引用,例如以下代碼會有問題:
預(yù)期結(jié)果是輸出: 2 4 6
,實(shí)際結(jié)果是2 4 4
, 至于為什么可
以看我之前的文章: PHP中
&符號你真的了解嗎?。 可以使用
array_walk`方法避免這個(gè)問題, 示例:
避免if
, elese
嵌套過深,很多嵌套可以通過提前終止來消除, 舉個(gè)簡單的例子:
建議使用第二種方式,不符合條件的直接返回,剩下的就是符號條件的,那么避免了在if里面寫很多代碼。
多個(gè)if/else
使用switch來替代,PHP8.0版本可以使用match
更為簡潔。
phpstorm
中安裝SonarLint
插件。如果你寫的代碼出現(xiàn)虛線,說明不太理想,那么可以根據(jù)提示修改,相信有強(qiáng)迫癥的同學(xué)一定會改,久而久之代碼就很規(guī)范了。例如:
方法未使用,方法名不規(guī)范已經(jīng)告訴你了,可以快捷修改,也可以自己修改。
前面說得都是比較基礎(chǔ)的東西,接下來才是主要的內(nèi)容。
相信很多同學(xué)都用過常用的thinkphp
丶laravel
丶yii
等流行框架之一。
這些框架都是MVC架構(gòu)的,看過很多人的代碼,要么把業(yè)務(wù)邏輯寫在控制器里面,要么寫在Model里面, 寫在Model里面相比寫控制器里面的還相對好一點(diǎn)。其實(shí)對于大型項(xiàng)目都不太友好。
下文以Laravel框架為例。
API需要進(jìn)行參數(shù)驗(yàn)證,但是參數(shù)驗(yàn)證寫在哪里比較優(yōu)雅呢?可能很多人在controller定義規(guī)則,然后在調(diào)用驗(yàn)證方法,那么驗(yàn)證那段代碼將在每個(gè)API里面出現(xiàn),例如我同事寫的。
這段代碼在每個(gè)API里面均會出現(xiàn)一次,豈不是很啰嗦,那么如何解決呢?
在Laravel的http目錄下建立一個(gè)Requsts
目錄,用于存放請求的參數(shù)驗(yàn)證類。建立一個(gè)BaseRequest
類:
比如登錄需要參數(shù)驗(yàn)證再建立一個(gè)LoginRequest
類繼承這個(gè)BaseRequest
。
使用的時(shí)候只要在Controller的方法中注入這個(gè)請求類即可。
這里獲取請求參數(shù)的時(shí)候會對表單進(jìn)行驗(yàn)證,否則參數(shù)驗(yàn)證失敗會調(diào)用剛剛Request積累定義的方法拋Json異常,返回信息給客戶端。
控制器的主要工作負(fù)載獲取請求數(shù)據(jù)和返回內(nèi)容,不應(yīng)做更多的事情,那么可以定義一個(gè)Service層來處理業(yè)務(wù)邏輯。 所以我的控制器的代碼只有一行。
在Laravel的app目錄下建立一個(gè)Services文件夾用于存放Service類,建立一個(gè)BaseService類:
然后建立一個(gè)UserService來處理用戶相關(guān)的業(yè)務(wù)邏輯。
在UserController中注入這個(gè)UserService使用:
Model不建議寫業(yè)務(wù)邏輯。Model主要是用來定義一些內(nèi)容,不應(yīng)該操縱數(shù)據(jù)。
Model的數(shù)據(jù)操縱應(yīng)該放在Repository中,在Laravel的app目錄下建立一個(gè)文件夾Repositories
。
定義BaseRepository:
定義UserRepository,用于用戶數(shù)據(jù)相關(guān)的操作, 在構(gòu)造方法中注入U(xiǎn)serModel:
項(xiàng)目中很多常量該怎么定義?
在app目錄創(chuàng)建一個(gè)Constant目錄, 再建立一個(gè)Contstant類來保存這些自定義常量。
這樣的好處是:
自定義常量可以集中的管理。
修改常量值的時(shí)候,只需要在這個(gè)類中找修改一次即可,代碼更新維護(hù)性好。
到此,相信大家對“PHP代碼書寫規(guī)范”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。