使用ThinkPHP開(kāi)發(fā)的過(guò)程中應(yīng)該盡量遵循下列命名規(guī)范:
- 類(lèi)文件都是以.class.php為后綴(這里是指的ThinkPHP內(nèi)部使用的類(lèi)庫(kù)文件,不代表外部加載的類(lèi)庫(kù)文件),使用駝峰法命名,并且首字母大寫(xiě),例如
DbMysql.class.php; - 類(lèi)的命名空間地址和所在的路徑地址一致,例如
Home\Controller\UserController類(lèi)所在的路徑應(yīng)該是 Application/Home/Controller/UserController.class.php; - 確保文件的命名和調(diào)用大小寫(xiě)一致,是由于在類(lèi)Unix系統(tǒng)上面,對(duì)大小寫(xiě)是敏感的(而ThinkPHP在調(diào)試模式下面,即使在Windows平臺(tái)也會(huì)嚴(yán)格檢查大小寫(xiě));
- 類(lèi)名和文件名一致(包括上面說(shuō)的大小寫(xiě)一致),例如
UserController類(lèi)的文件命名是UserController.class.php, InfoModel類(lèi)的文件名是InfoModel.class.php, 并且不同的類(lèi)庫(kù)的類(lèi)命名有一定的規(guī)范; - 函數(shù)、配置文件等其他類(lèi)庫(kù)文件之外的一般是以
.php為后綴(第三方引入的不做要求); - 函數(shù)的命名使用小寫(xiě)字母和下劃線(xiàn)的方式,例如
get_client_ip; - 方法的命名使用駝峰法,并且首字母小寫(xiě)或者使用下劃線(xiàn)“_”,例如
getUserName,_parseType,通常下劃線(xiàn)開(kāi)頭的方法屬于私有方法; - 屬性的命名使用駝峰法,并且首字母小寫(xiě)或者使用下劃線(xiàn)“_”,例如
tableName、_instance,通常下劃線(xiàn)開(kāi)頭的屬性屬于私有屬性; - 以雙下劃線(xiàn)“__”打頭的函數(shù)或方法作為魔法方法,例如
__call 和 __autoload; - 常量以大寫(xiě)字母和下劃線(xiàn)命名,例如
HAS_ONE和 MANY_TO_MANY; - 配置參數(shù)以大寫(xiě)字母和下劃線(xiàn)命名,例如
HTML_CACHE_ON; - 語(yǔ)言變量以大寫(xiě)字母和下劃線(xiàn)命名,例如
MY_LANG,以下劃線(xiàn)打頭的語(yǔ)言變量通常用于系統(tǒng)語(yǔ)言變量,例如 _CLASS_NOT_EXIST_; - 對(duì)變量的命名沒(méi)有強(qiáng)制的規(guī)范,可以根據(jù)團(tuán)隊(duì)規(guī)范來(lái)進(jìn)行;
- ThinkPHP的模板文件默認(rèn)是以
.html 為后綴(可以通過(guò)配置修改); - 數(shù)據(jù)表和字段采用小寫(xiě)加下劃線(xiàn)方式命名,并注意字段名不要以下劃線(xiàn)開(kāi)頭,例如
think_user 表和 user_name字段是正確寫(xiě)法,類(lèi)似 _username 這樣的數(shù)據(jù)表字段可能會(huì)被過(guò)濾。
特例:在ThinkPHP里面,有一個(gè)函數(shù)命名的特例,就是單字母大寫(xiě)函數(shù),這類(lèi)函數(shù)通常是某些操作的快捷定義,或者有特殊的作用。例如:A、D、S、L 方法等等,他們有著特殊的含義,后面會(huì)有所了解。
由于ThinkPHP默認(rèn)全部使用UTF-8編碼,所以請(qǐng)確保你的程序文件采用UTF-8編碼格式保存,并且去掉BOM信息頭(去掉BOM頭信息有很多方式,不同的編輯器都有設(shè)置方法,也可以用工具進(jìn)行統(tǒng)一檢測(cè)和處理),否則可能導(dǎo)致很多意想不到的問(wèn)題。
開(kāi)發(fā)建議
在使用ThinkPHP進(jìn)行開(kāi)發(fā)的過(guò)程中,我們給出如下建議,會(huì)讓你的開(kāi)發(fā)變得更輕松:
- 遵循框架的命名規(guī)范和目錄規(guī)范;
- 開(kāi)發(fā)過(guò)程中盡量開(kāi)啟調(diào)試模式,及早發(fā)現(xiàn)問(wèn)題;
- 多看看日志文件,查找隱患問(wèn)題;
- 養(yǎng)成使用I函數(shù)獲取輸入變量的好習(xí)慣;
- 更新或者環(huán)境改變后遇到問(wèn)題首要問(wèn)題是清空Runtime目錄;