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