新聞中心
織夢(mèng)內(nèi)容管理系統(tǒng)(dedecms v5.7)MVC框架說(shuō)明文檔
織夢(mèng)內(nèi)容管理系統(tǒng)(dedecms v5.7)3月份發(fā)布,最近一次更新在3月14日。雖說(shuō),新事物會(huì)存在著不足和缺點(diǎn),但是任何一個(gè)成功的版本都會(huì)經(jīng)歷這一個(gè)階段。任何一個(gè)成功品牌每天都在做同樣一件事情,讓自己的產(chǎn)品更完美、更強(qiáng)大。Dedecms亦如此,喜歡新鮮事物、體驗(yàn)新功能、喜歡挑戰(zhàn)技術(shù)的站長(zhǎng)們,就請(qǐng)選擇使用dedecms v5.7吧,讓我們一起讓這個(gè)我們喜愛(ài)的、免費(fèi)的開(kāi)源的dedecms不斷完善。無(wú)憂主機(jī)(www.gle-technology.com)這幾天通過(guò)測(cè)試,也發(fā)現(xiàn)了在php虛擬主機(jī)中安裝完dedecms v5.7無(wú)法打開(kāi)網(wǎng)站首頁(yè)得bug,追其原因是由于模板中友情鏈接代碼調(diào)用,導(dǎo)致的,臨時(shí)解決辦法就是再模板中刪除關(guān)于友情鏈接的代碼就可以解決,詳細(xì)過(guò)程參閱“”。這不是我們今天的重點(diǎn),織夢(mèng)官方論壇發(fā)布最新的V5.7版本之后,也同步的發(fā)布了模塊MVC框架得說(shuō)明,這對(duì)于做二次開(kāi)發(fā)的站長(zhǎng)們,是非常有幫助的。下面是關(guān)于模塊dedecms v5.7)MVC框架說(shuō)明。
一、什么是MVC類?
對(duì)于初次或即將常準(zhǔn)備做開(kāi)發(fā)的朋友,可能對(duì)MVC的概念可能有些模糊。好,我這里也簡(jiǎn)單說(shuō)下。MVC是一個(gè)設(shè)計(jì)模式,C是一個(gè)設(shè)計(jì)模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開(kāi)。MVC就是Modal view controler得縮寫(xiě)。M是指數(shù)據(jù)模型,V是指用戶界面,C則是控制器。MVC的工作就是將數(shù)據(jù)模型(M)和用戶界面(V)分開(kāi)的工作。織夢(mèng)MVC開(kāi)發(fā)框架是一個(gè)精簡(jiǎn)、迷你的web開(kāi)發(fā)框架,用這個(gè)開(kāi)發(fā)框架可以編寫(xiě)基于織夢(mèng)內(nèi)容管理系統(tǒng)的擴(kuò)展功能、模塊(插件),甚至可以將其分離出來(lái)開(kāi)發(fā)博客、BBS、SNS等
二、織夢(mèng)(dedecms v5.7)模塊MVC目錄結(jié)構(gòu)說(shuō)明
|_app
??? |___control????? 控制器(C)
??? |___model??????? 模型(M)
??? |___templates??? 視圖模板(V)
??? |___libraries??? 類庫(kù)
??? |___data???????? 配置
??? |___data\helper? 小助手
??? |___static?????? 樣式,js,圖片文件夾
? ??|___index.php??? 統(tǒng)一入口文件
解析與說(shuō)明:
統(tǒng)一入口解析地址:http://你的網(wǎng)址/app/index.php?ct=index&ac=save
ct=index:控制器入口,對(duì)應(yīng)到目錄control中的index.php
如果RunApp()指定了第三個(gè)參數(shù),例如問(wèn)答中RunApp($ct, $ac , 'admin'),說(shuō)明ct=index:控制器入口,對(duì)應(yīng)到目錄control/admin中的index.php
ac=save:操作,對(duì)應(yīng)文件index.php中的class index中function ac_save()
控制器中將相關(guān)功能操作都存放至一個(gè)文件中,例如留言板,可以使用:
?ct=guestbook&ac={do}統(tǒng)一完成,這樣也便于靜態(tài)化部署.
三、控制器開(kāi)發(fā)說(shuō)明(control):
基本代碼結(jié)構(gòu):
class yourctname extends Control
{
??? public function ac_save()
??? {
??? }
}
控制器可以選擇繼承一個(gè)基類:Control,這個(gè)類對(duì)應(yīng)的文件名是/include/control.class.php,這里面含有基類的相關(guān)操作說(shuō)明,這里有幾個(gè)常用方法:
$control->Model();//載入一個(gè)模型。例如問(wèn)答模塊中index.php中的 $this->question = $this->Model('mquestion'),就是在載入了mquestion這個(gè)模型。然后我們就可以通過(guò)$this->question來(lái)調(diào)用模型相應(yīng)操作。實(shí)現(xiàn)數(shù)據(jù)的插入,更新等等操作。調(diào)用類的名字可以隨便定義,但要保證沒(méi)有沖突。模型的文件放在model目錄中。
$control->Libraries();//載入一個(gè)類。有時(shí)開(kāi)發(fā)我們需要一個(gè)系統(tǒng)中不存在的類時(shí),我們可以通過(guò)這個(gè)方法來(lái)載入一個(gè)自己的類。具體的方法和模型一樣。類放在libraries目錄中。
$control->helper();//載入一個(gè)小助手。引入小助手是為了更好的幫助我們存放和管理需要用到的Function。具體的方法和模型一樣。小助手放在data\helper目錄中。
$control->SetTemplet();? // 設(shè)定當(dāng)前操作需要指定的模板;
$control->SetVar($k, $v);? // 設(shè)定模板需要解析的變量,在模板中使用{Dede:var.name /}進(jìn)行調(diào)用.
GLOBALS['k'] = $k;? // 設(shè)定模板需要的變量,在模板中可以直接用<?php echo $k;?>方式輸出(問(wèn)答模塊基本上都是采用這樣的方式輸出),這種方式比較適合處理一些復(fù)雜的數(shù)據(jù),例如數(shù)組。
$control->GetVar($k);? // 獲取設(shè)定的模板變量
$control->Display();? // 顯示模板解析后的內(nèi)容
$control->SaveTo();? // 將內(nèi)容保存到文件
控制器中關(guān)于模板的使用操作可以參看DedeTemplate模板引擎,具體可以參看公司內(nèi)部開(kāi)發(fā)文檔中模板說(shuō)明相關(guān)章節(jié).
四、模型開(kāi)發(fā)說(shuō)明(Model):
class mtype extends Model
{
??? public function get_one()
??? {
??? }
}
控制器可以選擇繼承一個(gè)基類:Model,這個(gè)類對(duì)應(yīng)的文件名是/include/model.class.php,這里面含有數(shù)據(jù)庫(kù)類的相關(guān)操作說(shuō)明,這里只有一個(gè)方法:
$model->dsql();//實(shí)例化數(shù)據(jù)庫(kù)操作類。模型中關(guān)于數(shù)據(jù)庫(kù)類的使用操作可以參看數(shù)據(jù)庫(kù)類使用說(shuō)明(http://help.dedecms.com/v53/archives/functions/db/)
五、模板標(biāo)簽調(diào)用說(shuō)明
如果在控制器中通過(guò)$control->SetVar($k, $v); 這種方式設(shè)定的參數(shù),我們通過(guò)標(biāo)簽 {dede:var.name /}的方式進(jìn)行調(diào)用。
如果在控制器中通過(guò)GLOBALS['k'] = $k;這種方式設(shè)定的參數(shù),我們通過(guò)標(biāo)簽 {dede:global.name/}的方式進(jìn)行調(diào)用或者直接采用php的方式進(jìn)行輸出。
無(wú)憂主機(jī) 提供美國(guó)/香港 純Linux環(huán)境下高端免備案php空間,僅僅只需99元一年起。
本文地址:http://www.gle-technology.com/dedecms/2142.html