該指導(dǎo)文章僅作為多年來,php開發(fā)團(tuán)隊總結(jié)出來的經(jīng)驗,僅供參考,并非什么標(biāo)準(zhǔn)~
action分為 2類
1.1. 展示類(如:actionLogin)
1.2. 操作類(如:actionLoginByAsync 或者 actonAjaxLogin)驗證碼存儲結(jié)構(gòu)
$captcha = [
'mobile/email' => [
'account' => $mobile/$email,
'code' => $code,
'dateline => time(),
'expired' => (time() + $expired)
],
];
- 變量、函數(shù)名稱一律英文全拼,語義化,杜絕簡寫(如:月份month,而不能寫成 mon)
- 變量語義化賦值(如:查詢數(shù)據(jù)為“新聞”,對應(yīng)表 news,則變量命名為 news/newss)
- 函數(shù)名稱避免使用 list等與 php內(nèi)置函數(shù)同名(常用:主頁-index;列表-search;詳情-detail)
- 處理查詢到的數(shù)據(jù),處理后的命名杜絕和字段命名同名(如:數(shù)據(jù)表時間戳日期 created_at 處理成中文描述后,應(yīng)該為 created_at_label或其他)
- 若為多條件組合的狀態(tài),則使用 extend_開頭(如:status + created_at + ...及類似的,則使用 extend_status / extend_status_label)
- 處理查詢到的數(shù)據(jù),若循環(huán)處理過程中,涉及到數(shù)據(jù)查詢,則使用 array_walk
- 盡可能使用單查詢,而非聯(lián)表查詢
- 與前端交互數(shù)據(jù),一律小寫,如果為多個單詞,則以“_”分隔
- 變量命名規(guī)則,盡可能以單一單詞命名(原則:當(dāng)前 fun沒有沖突),若為多個單詞,則以“_”分隔
- 多記錄數(shù)據(jù)變量命名規(guī)則,單詞 + 字母“s”,如:新聞 $newss
- 杜絕數(shù)據(jù)庫冗余字段參與邏輯計算,應(yīng)使用源數(shù)據(jù)參與計算(如:總金額加減;判斷總金額是否滿足條件)
- 測試代碼,必需添加注釋,格式:// 測試用:金額固定為 0.01
- model::fun,throw錯誤,拒絕 return錯誤
- model定義常量【一般為數(shù)據(jù)表字段】
- model處理數(shù)據(jù)(如:xxx_label)
- model定義關(guān)聯(lián)(hasOne,hasMany,……)
- model層保證只定義數(shù)據(jù),不寫業(yè)務(wù)邏輯
- logic負(fù)責(zé)業(yè)務(wù)邏輯,層級關(guān)系(view -> controller -> logic -> model)
- 利息、手續(xù)費(fèi)等貨幣類計算,超出 2位小數(shù)的,應(yīng)根據(jù)產(chǎn)品設(shè)計,向上取 OR 向下取
- 系統(tǒng)內(nèi)各類貨幣相加,應(yīng)保持 =0
- 系統(tǒng)內(nèi),浮點(diǎn)型數(shù)據(jù)計算,應(yīng)使用 php提供的高精度數(shù)據(jù)計算庫(bc)進(jìn)行處理
常用變量命名
分頁:page(當(dāng)前頁數(shù))、limit(每頁記錄數(shù))、count_page(總頁數(shù))
針對各個編輯器格式要求
行末結(jié)尾使用 unit換行符
使用框架要求
應(yīng)保證數(shù)據(jù)從數(shù)據(jù)庫到頁面展示,在“應(yīng)用”代碼中都有跡可循(即:杜絕任何框架的自動完成,如:日期格式化,日期自動寫入等)