織夢MVC開發框架開發手冊

很多人還是在研究DEDECMS,這裏我們公佈一下他模塊的MVC框架基本說明:

     這個開發框架可以編寫基於織夢內容管理系統的擴展功能、模塊(插件),甚至可以將其分離出來開發博客、BBS、SNS等。

目錄結構說明:
|_app
    |___control      控制器(C)
    |___model        模型(M)
    |___templates    視圖模板(V)
    |___libraries    類庫
    |___data         配置
    |___data\helper  小助手
    |___static       樣式,js,圖片文件夾
    |___index.php    統一入口文件

統一入口解析地址
http://你的網址/app/index.php?ct=index&ac=save
ct=index:控制器入口,對應到目錄control中的index.php
如果RunApp()指定了第三個參數,例如問答中RunApp($ct, $ac , 'admin'),說明ct=index:控制器入口,對應到目錄control/admin中的index.php
ac=save:操作,對應文件index.php中的class index中function ac_save()
控制器中將相關功能操作都存放至一個文件中,例如留言板,可以使用:
?ct=guestbook&ac={do}統一完成,這樣也便於靜態化部署.


1.控制器開發說明(control):
基本代碼結構:
class yourctname extends Control
{
    public function ac_save()
    {
    
    }
}
控制器可以選擇繼承一個基類:Control,這個類對應的文件名是/include/control.class.php,這裏面含有基類的相關操作說明,這裏有幾個常用方法:

$control->Model(); 
//載入一個模型。例如問答模塊中index.php中的 $this->question = $this->Model('mquestion'),就是在載入了mquestion這個模型。然後我們就可以通過$this->question來調用模型相應操作。實現數據的插入,更新等等操作。調用類的名字可以隨便定義,但要保證沒有衝突。模型的文件放在model目錄中。


$control->Libraries(); 
//載入一個類。有時開發我們需要一個系統中不存在的類時,我們可以通過這個方法來載入一個自己的類。具體的方法和模型一樣。類放在libraries目錄中。

$control->helper(); 
//載入一個小助手。引入小助手是爲了更好的幫助我們存放和管理需要用到的Function。
具體的方法和模型一樣。小助手放在data\helper目錄中。

$control->SetTemplate();  
$control->SetTemplet();  // 設定當前操作需要指定的模板;

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

GLOBALS['k'] = $k;  
// 設定模板需要的變量,在模板中可以直接用<?php echo $k;?>方式輸出(問答模塊基本上都是採用這樣的方式輸出),這種方式比較適合處理一些複雜的數據,例如數組。

$control->GetVar($k);  // 獲取設定的模板變量
$control->Display();  // 顯示模板解析後的內容
$control->SaveTo();  // 將內容保存到文件

控制器中關於模板的使用操作可以參看DedeTemplate模板引擎,具體可以參看公司內部開發文檔中模板說明相關章節.


模型開發說明(Model):
class mtype extends Model
{
    public function get_one()
    {
    
    }
}

控制器可以選擇繼承一個基類:Model,這個類對應的文件名是/include/model.class.php,這裏面含有數據庫類的相關操作說明,這裏只有一個方法:
$model->dsql(); 
//實例化數據庫操作類。模型中關於數據庫類的使用操作可以參看數據庫類使用說明

 

模板標籤調用說明:
   如果在控制器中通過$control->SetVar($k, $v); 這種方式設定的參數,我們通過標籤 {dede:var.name /}的方式進行調用。
   如果在控制器中通過GLOBALS['k'] = $k;這種方式設定的參數,我們通過標籤 {dede:global.name/}的方式進行調用或者直接採用php的方式進行輸出。


--------------------- 
作者:暗淡亮點 
來源:CSDN 
原文:https://blog.csdn.net/suleil1/article/details/49471341 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章