久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

HDWiki/MVC中的控制器

來(lái)自站長(zhǎng)百科
Jiaomh討論 | 貢獻(xiàn)2011年2月1日 (二) 16:04的版本
(差異) ←上一版本 | 最后版本 (差異) | 下一版本→ (差異)
跳轉(zhuǎn)至: 導(dǎo)航、? 搜索

HDWiki | HDWiki使用 | HDWiki插件

概述

MVC中的控制器control主要負(fù)責(zé)業(yè)務(wù)邏輯部分,所有的功能邏輯全部在此實(shí)現(xiàn),控制器對(duì)整個(gè)功能負(fù)責(zé),它調(diào)用模型(model)的方法實(shí)現(xiàn)它需要的功能,調(diào)用視圖(view)的方法來(lái)顯示數(shù)據(jù).

控制器(control)文件存放于 control/文件夾中,命名基本以功能為主,例如doc.php表示就是詞條相關(guān)的控制器,user.php就是用戶相關(guān)的控制

結(jié)構(gòu)

示例代碼如下:

!defined('IN_HDwiki') && exit('Access Denied');

class control extends base{

function control(& $get,& $post){
    $this->base( & $get,& $post);
    $this->load('user');
}

function dodefault{
    $user=$_ENV['user']->get_user($uid);
    $this->view->assign('user',$user); 
    $this->view->display('space');


}

?>

相關(guān)解釋

1、!defined('IN_HDwiki') && exit('Access Denied'); 每個(gè)control文件都是以此開(kāi)頭表示必須是HDwiki內(nèi)部調(diào)用

2、class control extends base 每個(gè)控制器類的名稱均是control 且均是base類的子類

3、每個(gè)控制器類必須有構(gòu)造函數(shù),function control 做初始化數(shù)據(jù) ,其中:

  • $this->base( & $get,& $post); 調(diào)用父類的構(gòu)造函數(shù)初始化用戶,模板,風(fēng)格,語(yǔ)言,等等數(shù)據(jù),每個(gè)control類都需要這樣調(diào)用
  • $this->load('user');調(diào)用父類的load方法載入 user模型(model),其文件為/model/user.class.php,載入相關(guān)的模型(model)可以根據(jù)需要選擇調(diào)用

4、function dodefault 方法就是我們要處理具體的業(yè)務(wù)邏輯的函數(shù)了,通常會(huì)有一個(gè)dodefault方法,這是個(gè)默認(rèn)方法,當(dāng)沒(méi)有指定相關(guān)的業(yè)務(wù)邏輯的方法名稱的時(shí)候會(huì)調(diào)用這個(gè)方法,若指點(diǎn)了方法則調(diào)用指定的方法,例如從url的形式 index.php?user-space.html來(lái)看調(diào)用user的control文件control/user.php 并且執(zhí)行space的業(yè)務(wù)邏輯,將調(diào)用 dospace方法 (所有業(yè)務(wù)邏輯名稱加do便是業(yè)務(wù)邏輯要執(zhí)行的方法)

5、$user=$_ENV['user']->get_user($uid); 代表執(zhí)行上面載入的user模型的get_user方法,

6、$this->view->assign('user',$user);調(diào)用視圖類將$user變量發(fā)送到頁(yè)面上去, $this->view->display('space');調(diào)用視圖類調(diào)用/view/default/space.htm 頁(yè)面并在瀏覽器中將頁(yè)面解析顯示出來(lái)

開(kāi)發(fā)

若要在某個(gè)control怎家新的業(yè)務(wù)邏輯,以上面結(jié)構(gòu)為例,只需要在control增加新的方法即可,以增加個(gè)總用戶個(gè)數(shù)為例,調(diào)用index.php?user-members即可看到用戶總數(shù)的頁(yè)面

我們需要在function dodefault(){}這個(gè)方法后面添加一個(gè) function domembers(){}的方法

這個(gè)方法中執(zhí)行得到用戶總數(shù)的業(yè)務(wù)邏輯,需要調(diào)用 user模型(model user.class.php)的get_count方法得到總數(shù),并將總數(shù)發(fā)送的頁(yè)面中,并調(diào)用members.htm這個(gè)文件顯示出來(lái),那么這個(gè)方法可以這樣寫(xiě)

function domembers(){

    $members=$_ENV['user']->get_count();//此方法若model方法中沒(méi)有,需要在model(user.class.php)中添加,詳細(xì)請(qǐng)參考MVC中的模型(Model) 此方法可得到總?cè)藬?shù);

    $this->view->assign('count',$members);//調(diào)用視圖將總?cè)藬?shù)復(fù)制給頁(yè)面上的count變量,頁(yè)面上可以用count表示總?cè)藬?shù)

    $this->view->display('members')//調(diào)用視圖顯示/view/default/members.htm視圖文件 詳細(xì)請(qǐng)參看MVC中的視圖(View)


}

這樣添加一個(gè)新的業(yè)務(wù)邏輯就完成了

參考來(lái)源

http://kaiyuan.hudong.com/

HDWIKI使用手冊(cè)導(dǎo)航

HDWIKI安裝

安裝教程

HDWiki使用

前臺(tái)使用說(shuō)明 | 用戶管理 | 模板管理 | 插件管理 | 數(shù)據(jù)庫(kù)管理 | 站內(nèi)統(tǒng)計(jì) | Map功能 | 基本設(shè)置 | 站點(diǎn)設(shè)置 | 擴(kuò)展設(shè)置 | 內(nèi)容設(shè)置 | 友情鏈接及廣告管理 | 分類管理 | 詞條管理 | 數(shù)據(jù)調(diào)用 | 其他內(nèi)容管理 | 禮品商店 | 圖片及木馬掃描 | Apache偽靜態(tài) | IIS偽靜態(tài) | Nginx偽靜態(tài) | 通用樣式解讀 | 樣式使用規(guī)則 | 數(shù)據(jù)庫(kù)結(jié)構(gòu)說(shuō)明 | 模板說(shuō)明 | 函數(shù)類參考 |軟件包結(jié)構(gòu) | HDWiki運(yùn)行機(jī)制和原理 |編碼規(guī)范 |MVC中的控制器 | 框架簡(jiǎn)介 | 高級(jí)應(yīng)用 | MVC中的視圖 | MVC中的模型 | HDWiki與PHPCMS整合 | HDWiki與PHPWind整合 | HDWiki與DEDECMS整合 | HDWiki與UCenter整合 | 可視化編輯使用說(shuō)明 | 模塊區(qū)版塊制作教程 | 模版共享

HDWiki插件

插件開(kāi)發(fā)指南 | 許愿墻插件開(kāi)發(fā)實(shí)例 | 模版與標(biāo)簽 | 宣傳中心 | 友情鏈接申請(qǐng) | 數(shù)據(jù)調(diào)用 | 互動(dòng)摸摸