WIKI使用導航
站長百科導航
站長專題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢
- 虛擬主機
- cPanel
- 網(wǎng)址導航專題
- 云計算
- 微博營銷
- 虛擬主機管理系統(tǒng)
- 開放平臺
- WIKI程序與應用
- 美國十大主機
HDWiki/MVC中的控制器
概述[ ]
MVC中的控制器control主要負責業(yè)務邏輯部分,所有的功能邏輯全部在此實現(xiàn),控制器對整個功能負責,它調(diào)用模型(model)的方法實現(xiàn)它需要的功能,調(diào)用視圖(view)的方法來顯示數(shù)據(jù).
控制器(control)文件存放于 control/文件夾中,命名基本以功能為主,例如doc.php表示就是詞條相關的控制器,user.php就是用戶相關的控制
結構[ ]
示例代碼如下:
!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'); } ?>
相關解釋[ ]
1、!defined('IN_HDwiki') && exit('Access Denied'); 每個control文件都是以此開頭表示必須是HDwiki內(nèi)部調(diào)用
2、class control extends base 每個控制器類的名稱均是control 且均是base類的子類
3、每個控制器類必須有構造函數(shù),function control 做初始化數(shù)據(jù) ,其中:
- $this->base( & $get,& $post); 調(diào)用父類的構造函數(shù)初始化用戶,模板,風格,語言,等等數(shù)據(jù),每個control類都需要這樣調(diào)用
- $this->load('user');調(diào)用父類的load方法載入 user模型(model),其文件為/model/user.class.php,載入相關的模型(model)可以根據(jù)需要選擇調(diào)用
4、function dodefault 方法就是我們要處理具體的業(yè)務邏輯的函數(shù)了,通常會有一個dodefault方法,這是個默認方法,當沒有指定相關的業(yè)務邏輯的方法名稱的時候會調(diào)用這個方法,若指點了方法則調(diào)用指定的方法,例如從url的形式 index.php?user-space.html來看調(diào)用user的control文件control/user.php 并且執(zhí)行space的業(yè)務邏輯,將調(diào)用 dospace方法 (所有業(yè)務邏輯名稱加do便是業(yè)務邏輯要執(zhí)行的方法)
5、$user=$_ENV['user']->get_user($uid); 代表執(zhí)行上面載入的user模型的get_user方法,
6、$this->view->assign('user',$user);調(diào)用視圖類將$user變量發(fā)送到頁面上去, $this->view->display('space');調(diào)用視圖類調(diào)用/view/default/space.htm 頁面并在瀏覽器中將頁面解析顯示出來
開發(fā)[ ]
若要在某個control怎家新的業(yè)務邏輯,以上面結構為例,只需要在control增加新的方法即可,以增加個總用戶個數(shù)為例,調(diào)用index.php?user-members即可看到用戶總數(shù)的頁面
我們需要在function dodefault(){}這個方法后面添加一個 function domembers(){}的方法
這個方法中執(zhí)行得到用戶總數(shù)的業(yè)務邏輯,需要調(diào)用 user模型(model user.class.php)的get_count方法得到總數(shù),并將總數(shù)發(fā)送的頁面中,并調(diào)用members.htm這個文件顯示出來,那么這個方法可以這樣寫
function domembers(){ $members=$_ENV['user']->get_count();//此方法若model方法中沒有,需要在model(user.class.php)中添加,詳細請參考MVC中的模型(Model) 此方法可得到總人數(shù); $this->view->assign('count',$members);//調(diào)用視圖將總人數(shù)復制給頁面上的count變量,頁面上可以用count表示總人數(shù) $this->view->display('members')//調(diào)用視圖顯示/view/default/members.htm視圖文件 詳細請參看MVC中的視圖(View) }
這樣添加一個新的業(yè)務邏輯就完成了
參考來源[ ]
HDWIKI使用手冊導航 | ||||||
---|---|---|---|---|---|---|
|