DedeCMSV5.7模塊MVC框架分析
來(lái)源:易賢網(wǎng) 閱讀:562 次 日期:2014-11-26 10:28:31
溫馨提示:易賢網(wǎng)小編為您整理了“DedeCMSV5.7模塊MVC框架分析”,方便廣大網(wǎng)友查閱!

本文較為詳細(xì)的分析了DedeCMSV5.7模塊MVC框架結(jié)構(gòu)。分享給大家供大家參考。具體分析如下:

織夢(mèng)MVC開發(fā)框架是一個(gè)精簡(jiǎn)、迷你的web開發(fā)框架,用這個(gè)開發(fā)框架可以編寫基于織夢(mèng)內(nèi)容管理系統(tǒng)的擴(kuò)展功能、模塊(插 件),甚至可以將其分離出來(lái)開發(fā)博客、BBS、SNS等.

目錄結(jié)構(gòu)說明:

復(fù)制代碼代碼如下:|_app

|___control 控 制器(C)

|___model 模型(M)

|___templates 視圖模板(V)

|___libraries 類 庫(kù)

|___data 配置

|___data\helper 小助手

|___static 樣式,js,圖片文件夾

|___index.php 統(tǒng)一入口文件

統(tǒng)一入口解析地址:http://你的 網(wǎng)址/app/index.php?ct=index&ac=savect=index:控制器入口,對(duì)應(yīng)到目錄control中的 index.php

如果RunApp()指定了第三個(gè)參數(shù),例如問答中RunApp($ct, $ac , 'admin'),說明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)化部署.

1.控制器開發(fā)說明 (control):

基本代碼結(jié)構(gòu):

復(fù)制代碼代碼如下:class yourctname extends Control

{

public function ac_save()

{

}

}

控制器可以選擇繼承一 個(gè)基類:Control,這個(gè)類對(duì)應(yīng)的文件名是/include/control.class.php,這里面含有基類的相關(guān)操作說明,這里有幾個(gè)常用方 法:

$control->Model();

載入一個(gè)模型。例如問答模塊中index.php中的 $this->question = $this->Model('mquestion'),就是在載入了mquestion這個(gè)模型。然后我們就可以通 過$this->question來(lái)調(diào)用模型相應(yīng)操作。實(shí)現(xiàn)數(shù)據(jù)的插入,更新等等操作。調(diào)用類的名字可以隨便定義,但要保證沒有沖突。模型的文件放 在model目錄中。

$control->Libraries();

載入一個(gè)類。有時(shí)開發(fā)我們需要一個(gè)系統(tǒng) 中不存在的類時(shí),我們可以通過這個(gè)方法來(lái)載入一個(gè)自己的類。具體的方法和模型一樣。類放在libraries目錄中。

$control->helper();

載入一個(gè)小助手,引入小助手是為了更好的幫助我們存放和管理需要用到的Function,具體的方法和模型一樣,小助手放在 data\helper目錄中.

復(fù)制代碼代碼如下:$control->SetTemplate();

$control->SetTemplet(); // 設(shè)定當(dāng)前操作需要指定的模板;

//phpfensi.com

$control->SetVar($k, $v); // 設(shè)定模板需要解析的變量,在模板中使用{dede:var.name /}進(jìn)行調(diào)用.

GLOBALS['k'] = $k;

設(shè)定模板需要的變量,在模板中可以直接用方式輸出,問答模塊基本上都是采用這樣的方式輸出,這種方式比較適合處理一些復(fù)雜的數(shù)據(jù),例如數(shù)組.

復(fù)制代碼代碼如下:$control->GetVar($k); // 獲取設(shè)定的模板變量

$control->Display(); // 顯示模板解析后的內(nèi)容

$control->SaveTo(); // 將內(nèi)容保存到文件

控制器中關(guān)于模板的使用操作可以參看DedeTemplate模板引擎,具體可以參看公司內(nèi)部開發(fā)文檔中模板說明相關(guān) 章節(jié).

模型開發(fā)說明(Model):

復(fù)制代碼代碼如下:class mtype extends Model

{

public function get_one()

{

}

}

控制器可以選擇繼承一個(gè)基類:Model,這個(gè)類對(duì)應(yīng)的文件名是/include/model.class.php,這里面 含有數(shù)據(jù)庫(kù)類的相關(guān)操作說明,這里只有一個(gè)方法:

$model->dsql();

實(shí)例化數(shù)據(jù)庫(kù)操作類,模型中關(guān)于數(shù)據(jù)庫(kù)類的使用操作可以參看數(shù)據(jù)庫(kù)類使用說明

模板標(biāo)簽調(diào)用說明:

如果在控制器中通過$control->SetVar($k, $v); 這種方式設(shè)定的參數(shù),我們通過標(biāo)簽 {dede:var.name /}的方式進(jìn)行調(diào)用.

如果在控制器中通過GLOBALS['k'] = $k;這種方式設(shè)定的參數(shù),我們通過標(biāo)簽 {dede:global.name/}的方式進(jìn)行調(diào)用或者直接采用php的方式進(jìn)行輸出.

希望本文所述對(duì)大家的dedecms二次開發(fā)有所幫助。

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看CMS教程
易賢網(wǎng)手機(jī)網(wǎng)站地址:DedeCMSV5.7模塊MVC框架分析
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
相關(guān)閱讀CMS教程

2025國(guó)考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)