公司開(kāi)發(fā)一直使用的是OneThink框架,由于需求需要,想寫(xiě)一個(gè)系統(tǒng),但是又要和公司系統(tǒng)不完全分離,故數(shù)據(jù)庫(kù)要使用一個(gè),方便查表。
ThinkCMF是一款基于ThinkPHP+MYSQL開(kāi)發(fā)的中文內(nèi)容管理框架(CMF),關(guān)鍵開(kāi)源。
安裝
去到官網(wǎng)下載最新的cmf框架,然后直接將文件夾放到開(kāi)發(fā)目錄,在hosts文件中配好域名就可以直接進(jìn)行安裝了,非常方便。
但是問(wèn)題來(lái)了,在安裝過(guò)程中會(huì)讓你輸入數(shù)據(jù)庫(kù)前綴,如(think_),我的要求是和公司的OT公用一張表,但是倘若你直接輸入think_,它會(huì)報(bào)錯(cuò),原因是表名沖突,由于OT在安裝時(shí)也會(huì)默認(rèn)導(dǎo)入很多常規(guī)表,這是如出一轍的。
解決方法:打開(kāi)application文件夾,進(jìn)入install,找到install3的頁(yè)面,將必須填寫(xiě)表前綴刪掉,這樣就可以在安裝時(shí)使表前綴為空,避免后期帶來(lái)不必要的麻煩。
使用
那么,安裝成功的驚喜不用持續(xù)太久,因?yàn)閏mf的寫(xiě)法與ot還是存在一點(diǎn)差別的,不過(guò)我個(gè)人還是更喜歡cmf中的寫(xiě)法,每一個(gè)功能塊的都得很開(kāi),所有功能都基于application文件夾,每一個(gè)單獨(dú)一個(gè)文件夾,里面寫(xiě)好控制器和公共方法以及模型,功能之間互不干涉,很清晰。頁(yè)面文件位于admin下的theme和theme文件夾下,也是單獨(dú)文件夾形式。
新建功能
比如我們要新建一個(gè)管理商品的功能(Goods),首先在application中新建一個(gè)Goods文件夾,在Goods中新建一個(gè)Common、Controller和Model文件夾,在Controller中新建文件 GoodsListController.class.php ,對(duì)應(yīng)著在Model中建ListModel.class.php ,在 Common 中新建文件Function.php備用,在 /Admin/Theme/下新建Goods文件夾,新建文件index.html,這時(shí),一個(gè)基本的功能模塊雛形就形成了。
兩個(gè)小坑
在所以文件都寫(xiě)好,也在控制器中
$this->display了后,并且在后臺(tái)菜單管理中合理添加了路徑后,你會(huì)發(fā)現(xiàn)還是打不開(kāi)0.0,恩,這就對(duì)了。不然怎么說(shuō)是坑呢。我們找到application/Common/config.php,打開(kāi)文件找到MODULE_ALLOW_LIST配置項(xiàng),在后面加上'Goods',然后打開(kāi)網(wǎng)頁(yè)就能看到了。由于建立框架時(shí),前綴為空,所以在使用model時(shí)還是會(huì)有問(wèn)題,這時(shí),我們?cè)贛odel文件中class下加上一句
protected $tableName = "think_goods";,就能正常使用model了。
最后
祝大家在程序的坑中越陷越深!Happy Work Happy EveryDay!
--------Night ! Madman