用thinkphp開發(fā)了好些項目了;最近準(zhǔn)備抽空寫一些經(jīng)驗總結(jié);
為大廠等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及大廠網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、做網(wǎng)站、大廠網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!希望能給剛開始接觸tp的童鞋們提供一些開發(fā)的方案;少走一些彎路;少踩一些坑;
這些絕對都是些精華干貨;耐著性子閱讀;相信收貨大大的;
可以結(jié)合git項目對照研究:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin
先從thinkphp的目錄架構(gòu)開始吧;
thinkbjy 白俊遙博客 ├─Application 項目邏輯目錄 │ ├─Common 公共模塊 │ │ ├─Common 公共函數(shù)目錄 │ │ │ ├─functioin.php 公共函數(shù)php文件 │ │ ├─Conf 公共配置文件目錄 │ │ │ ├─config.php tp的配置 用于覆蓋框架默認(rèn)配置項 │ │ │ ├─db.php 數(shù)據(jù)庫配置 用戶名 密碼等 │ │ │ ├─webconfig.php 項目的配置;網(wǎng)站名;是否開啟網(wǎng)站等 │ │ ├─Controller 公共控制器目錄 │ │ │ ├─BaseController.class.php 應(yīng)用最基礎(chǔ)的控制器 │ │ │ ├─HomeBaseController.class.php Home基礎(chǔ)控制器繼承BaseController │ │ │ ├─AdminBaseController.class.php Admin基礎(chǔ)控制器繼承BaseController │ │ │ ├─UserBaseController.class.php User基礎(chǔ)控制器繼承BaseController │ │ │ ├─... │ │ ├─Model 公共模型目錄 │ │ │ ├─BaseModel.class.php 應(yīng)用最基礎(chǔ)的Model │ │ │ ├─ArticleModel.class.php 文章model 繼承BaseModel │ │ │ ├─UserModel.class.php 用戶model 繼承BaseModel │ │ │ ├─... │ │ ├─Tag 公共標(biāo)簽?zāi)夸?│ │ │ ├─My.class.php 自定義的標(biāo)簽庫 │ │ │ ├─... │ ├─Home Home模塊 │ │ ├─Controller Home控制器目錄 繼承HomeBaseController │ │ │ ├─ArticleController.class.php 文章控制器目錄 │ │ │ ├─IndexController.class.php 首頁控制器 │ │ │ ├─ ... │ ├─Admin 結(jié)構(gòu)同Home │ ├─User 結(jié)構(gòu)同Home ├─Public 資源文件目錄 │ ├─install 安裝引導(dǎo)目錄 │ ├─statics 靜態(tài)資源目錄 │ │ ├─bootstrap bootstrap框架 │ │ ├─ueditor ueditor編輯器 │ │ ├─js jquery等第三方j(luò)s存放的目錄 │ │ ├─css animate.css等第三方css目錄 │ │ ├─ ... ├─Template 視圖文件目錄 │ ├─Public 公共目錄 │ │ ├─js 公共js目錄 │ │ │ ├─base.js 全站都引用的js文件 │ │ │ ├─ ... │ │ ├─css 公共css目錄 │ │ │ ├─base.css 全站都引用的css文件 │ │ │ ├─ ... │ │ ├─p_w_picpaths 公共圖片目錄 │ │ ├─public_head.html 全站通用的公共頭部 │ │ ├─public_foot.html 全站通用的公共底部 │ │ ├─... │ ├─Home 前臺Home視圖目錄 │ │ ├─Public 前臺Home的公共目錄 │ │ │ ├─js home下調(diào)用的js文件目錄 │ │ │ ├─css home下調(diào)用的css文件目錄 │ │ │ ├─p_w_picpaths home下調(diào)用的圖片文件目錄 │ │ ├─Index 首頁文件目錄 │ │ │ ├─index.html 首頁 │ │ │ ├─ ... │ ├─Admin 同Home │ ├─User 同Home ├─Upload 公共上傳目錄 │ ├─p_w_picpaths 上傳的圖片目錄 │ │ ├─avatar 頭像目錄 │ │ ├─ueditor ueditor編輯器上傳的圖片目錄 │ │ │ ... │ │ ... ├─Runtime 運行時目錄 ├─ThinkPHP 框架系統(tǒng)目錄/Application/Common/Common/function.php 這個作為常用公共函數(shù)文件;
平時經(jīng)常用的自定義函數(shù)都可以放里面;
比如說 之前寫過的p函數(shù) 以符合人類閱讀的方式打印php數(shù)組
然后還建議寫:判斷用戶是否登陸的函數(shù)、獲取當(dāng)前登陸用戶id的函數(shù)、上傳函數(shù)、圖片處理函數(shù)、驗證碼函數(shù)、分頁函數(shù)等等;
/Application/Common/Conf 公共配置項目錄下 我建議至少創(chuàng)建如下3個文件
config.php、db.php、webconfig.php 為什么要創(chuàng)建3個配置項文件呢?我來詳細(xì)的講解這三個文件的作用;
config.php里面都是系統(tǒng)的配置項;我們這個文件主要是用來覆蓋框架默認(rèn)的配置項;這個文件好理解些;
db.php 數(shù)據(jù)庫的賬號密碼等;單獨放一個文件是因為很多時候;這個文件需要根據(jù)應(yīng)用安裝的時候填寫的數(shù)據(jù)庫賬號密碼生成的文件;
webconfig.php 這個文件獨立出來的原因同上;
/Application/Common/Controller 公共控制器目錄
這個目錄下一定要建一個BaseController.class.php 為了開發(fā)維護(hù)的方便 我們開發(fā)要盡量避免改動框架的文件;
所以呢;為了不改動框架的Controller.class.php 我們自己建一個BaseController以后所有的Controller都繼承它;
這樣只要在BaseController里面寫的方法;所有的控制器都繼承到了;都可以用到;
但是呢;我們開發(fā)的項目可能會比較復(fù)雜;只有一個BaseController會比較雜亂;所以我們還可以根據(jù)業(yè)務(wù)需求再建AdminBaseController.class.php 可以在__construct構(gòu)造函數(shù)中判斷如果不是管理員;禁止訪問;我們只需要所有把所有需要有管理員權(quán)限才可訪問的控制器全部繼承AdminBaseController; 這樣這些控制器就不需要每個都判斷是否是管理員了;
具體可以看 thinkphp集成系列之rbac的升級版auth權(quán)限管理系統(tǒng)demo
UserBaseController.class.php 等其他xxBaseController同樣道理;比如說用戶的個人中心必須是登陸狀態(tài)才可訪問等等;
/Application/Common/Model 公共模型目錄
這個目錄一定要建一個BaseModel.class.php 為什么呢?
巴拉巴拉。。。
巴拉巴拉。。。
好吧;我在組織語言的時候;發(fā)現(xiàn)越寫越多;所以我準(zhǔn)備單獨開一片文章來寫B(tài)aseModel的問題;
傳送門: thinkphp的model模型的設(shè)計經(jīng)驗總結(jié)
/Application/Common/Tag 公共標(biāo)簽?zāi)夸?/p>
為了方便開發(fā);我們還是必須要建一個自定義的標(biāo)簽庫;My.class.php
什么是標(biāo)簽庫呢?我們會發(fā)現(xiàn)在模板中tp內(nèi)置好多標(biāo)簽很好用;比如說foreach、volist、eq;
官方的文檔傳送門:內(nèi)置標(biāo)簽
什么?不知道怎么自定義標(biāo)簽? 好吧;再來個傳送門:thinkphp自定義模板標(biāo)簽
/Public 資源文件目錄
可以把boostrap、jquery等第三方插件扔到這里面
/Template 視圖目錄
建議把每個模塊的View都移到這個目錄中集中管理;不然開發(fā)的時候各種點目錄切換;那酸爽;誰用誰知道;
/Template/default/Home/Public/js/base.js 和/Template/default/Home/Public/css/base.css 強(qiáng)烈建議全站都引用;里面寫一些全站都可以用的樣式或函數(shù);比如css的reset;其他的看上面的目錄就可以看明白的;就不多啰嗦了;
/Runtime 運行時目錄
和Template一樣;建議都移到最外層;方便我們刪除緩存;
好吧;認(rèn)真寫博客真的很耗時;這篇博客寫了整整3個小時;但愿能幫到童鞋們;
本文為白俊遙原創(chuàng)文章,轉(zhuǎn)載無需和我聯(lián)系,但請注明來自白俊遙博客http://www.baijunyao.com
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。