淺析PHP開(kāi)發(fā)規(guī)范
基本約定
源文件
代碼使用<?php開(kāi)頭,忽略閉合標(biāo)簽?>
文件格式必須是無(wú)BOM UTF-8格式
一個(gè)文件只聲明一種類型,如class和interface不能混寫(xiě)在一個(gè)源文件中
縮進(jìn)
使用4個(gè)空格來(lái)縮進(jìn),IDE可以設(shè)置
行長(zhǎng)度
每行120個(gè)字符
關(guān)鍵字
所有關(guān)鍵字均為小寫(xiě),如true、false
命名
類名為大駝峰法,如UserModel
類方法名為小駝峰法,如getUserId()
函數(shù)使用小寫(xiě)字母加_組合,如get_cookie()
變量名使用小駝峰法,如$userId
常量定義為大寫(xiě)字母加_組合,如IS_DEBUG
代碼注釋標(biāo)簽
類文件中對(duì)類、方法、屬性進(jìn)行注釋,使用@param @return @throwns
@param注釋寫(xiě)出詳解,如@param string $username 用戶名
業(yè)務(wù)模塊
路由為小寫(xiě)字母加_組成,如/api/get_user_info
View層負(fù)責(zé)數(shù)據(jù)展示
Controller層負(fù)責(zé)輸入?yún)?shù)校驗(yàn),最外層捕捉異常,調(diào)用Logic和View視圖層
Logic層負(fù)責(zé)具體業(yè)務(wù)邏輯,調(diào)用Model層,返回處理數(shù)據(jù)
Model層負(fù)責(zé)數(shù)據(jù)表查詢和關(guān)聯(lián)關(guān)系
異常類需分清功能,如ParamException表示參數(shù)錯(cuò)誤,UserException表示自定義異常
異常需分類定義code,使用PHP類常量代替,如
<?php namespace app\exceptions\codes; class UserExceptionCode extends BaseExceptionCode { const NO_AUTH = 1000001; const NO_AUTH_MSG = '不具有權(quán)限'; const STATUS_EXCEPTION = 1000002; const STATUS_EXCEPTION_MSG = '狀態(tài)異常'; }
數(shù)據(jù)表文件如有Enum類型,使用PHP類常量代替,如
<?php namespace app\enums; class UserEnum extends BaseEnum { const STATUS_DELETED = -1;// 已刪除 const STATUS_DISABLE = 0;// 禁用 const STATUS_ENABLE = 1;// 正常 const AUTH_GUEST = 1;// 匿名用戶 const AUTH_GENERAL_ADMIN = 2;// 普通管理員 const AUTH_SUPER_ADMIN = 3;// 超級(jí)管理員 }
其中STATUS和AUTH為數(shù)據(jù)表映射字段名
Api接口輸出,示例
{ "code" : 0, "msg" : "success", "data" : { "userId" : 100 } }
其中code與msg為必填字段,data為空的情況下不填,示例
{ "code" : 100001, "msg" : "不具有權(quán)限" }
其它
數(shù)組,鍵為字符串時(shí)候使用單引號(hào),只有一個(gè)鍵時(shí)候使用單行,示例
$arr = [ 'userId' => 100 ];
多個(gè)鍵時(shí)候使用多行,示例
$arr = [ 'id' => 100, 'username' => 'admin', ];
字符串使用單引號(hào)'
相關(guān)文章
PHP7 preg_replace 出錯(cuò)及解決辦法
在本篇文章里小編給大家整理的是一篇關(guān)于PHP7 preg_replace 出錯(cuò)及解決辦法,有需要的朋友們可以跟著學(xué)習(xí)下。2021-12-12php遞歸函數(shù)中使用return的注意事項(xiàng)
php遞歸函數(shù)中使用return的時(shí)候會(huì)碰到無(wú)法正確返回想要的值得情況,下面就來(lái)舉例子來(lái)說(shuō)明一下吧2014-01-01Linux服務(wù)器下PHPMailer發(fā)送郵件失敗的問(wèn)題解決
這篇文章主要給大家介紹了關(guān)于如何解決Linux服務(wù)器下PHPMailer發(fā)送郵件失敗的問(wèn)題,文中通過(guò)示例代碼介紹的很詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-03-03PHP讀取并輸出XML文件數(shù)據(jù)的簡(jiǎn)單實(shí)現(xiàn)方法
這篇文章主要介紹了PHP讀取并輸出XML文件數(shù)據(jù)的簡(jiǎn)單實(shí)現(xiàn)方法,涉及php針對(duì)xml格式文件數(shù)據(jù)的載入、遍歷、讀取、輸出等相關(guān)操作技巧,需要的朋友可以參考下2017-12-12php中使用key,value,current,next和prev函數(shù)遍歷數(shù)組的方法
這篇文章主要介紹了php中使用key,value,current,next和prev函數(shù)遍歷數(shù)組的方法,較為詳細(xì)的分析了php中數(shù)組遍歷的常用技巧與實(shí)例用法,需要的朋友可以參考下2015-03-03phpstudy無(wú)法啟動(dòng)MySQL服務(wù)的解決方法
個(gè)人比較懶,所以想到用phpstudy這個(gè)軟件進(jìn)行控制,但這個(gè)時(shí)候問(wèn)題出現(xiàn)了:在下載phpstudy后想要啟動(dòng)MySQL服務(wù),但是總是無(wú)法啟動(dòng),所以本文給大家介紹了如何解決phpstudy無(wú)法啟動(dòng)MySQL服務(wù)的問(wèn)題,需要的朋友可以參考下2024-06-06