淺析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)文章
PHP中require和include路徑問(wèn)題詳解
這篇文章主要介紹了PHP中require和include路徑問(wèn)題詳解,十分詳細(xì),需要的朋友可以參考下2014-12-12
php用戶注冊(cè)時(shí)常用的檢驗(yàn)函數(shù)實(shí)例總結(jié)
這篇文章主要介紹了php用戶注冊(cè)時(shí)常用的檢驗(yàn)函數(shù),以類的形式實(shí)例總結(jié)了用戶名驗(yàn)證、郵箱驗(yàn)證、QQ驗(yàn)證等常用的驗(yàn)證技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-12-12
PHP正則的Unknown Modifier錯(cuò)誤解決方法
PHP正則時(shí)出現(xiàn)Unknown Modifier錯(cuò)誤解決方法2010-03-03
解析如何去掉CodeIgniter URL中的index.php
本篇文章是對(duì)如何去掉CodeIgniter URL中index.php的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
php實(shí)現(xiàn)的Captcha驗(yàn)證碼類實(shí)例
這篇文章主要介紹了php實(shí)現(xiàn)的Captcha驗(yàn)證碼類,實(shí)例展示了一個(gè)驗(yàn)證碼類程序并附有用法演示實(shí)例,有著非常好的參考借鑒價(jià)值,需要的朋友可以參考下2014-09-09
簡(jiǎn)化php模板頁(yè)面中分頁(yè)代碼的解析
這篇文章主要是針對(duì)“使用模板的情況”寫(xiě)的, 但是這種方法適合于任何的場(chǎng)合,在任何情況下都是一種比較好的解決方案2009-02-02

