HDWiki/MVC中的控制器

来自站长百科
跳转至: 导航、​ 搜索

HDWiki | HDWiki使用 | HDWiki插件

概述[ ]

MVC中的控制器control主要负责业务逻辑部分,所有的功能逻辑全部在此实现,控制器对整个功能负责,它调用模型(model)的方法实现它需要的功能,调用视图(view)的方法来显示数据.

控制器(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内部调用

2、class control extends base 每个控制器类的名称均是control 且均是base类的子类

3、每个控制器类必须有构造函数,function control 做初始化数据 ,其中:

  • $this->base( & $get,& $post); 调用父类的构造函数初始化用户,模板,风格,语言,等等数据,每个control类都需要这样调用
  • $this->load('user');调用父类的load方法载入 user模型(model),其文件为/model/user.class.php,载入相关的模型(model)可以根据需要选择调用

4、function dodefault 方法就是我们要处理具体的业务逻辑的函数了,通常会有一个dodefault方法,这是个默认方法,当没有指定相关的业务逻辑的方法名称的时候会调用这个方法,若指点了方法则调用指定的方法,例如从url的形式 index.php?user-space.html来看调用user的control文件control/user.php 并且执行space的业务逻辑,将调用 dospace方法 (所有业务逻辑名称加do便是业务逻辑要执行的方法)

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

6、$this->view->assign('user',$user);调用视图类将$user变量发送到页面上去, $this->view->display('space');调用视图类调用/view/default/space.htm 页面并在浏览器中将页面解析显示出来

开发[ ]

若要在某个control怎家新的业务逻辑,以上面结构为例,只需要在control增加新的方法即可,以增加个总用户个数为例,调用index.php?user-members即可看到用户总数的页面

我们需要在function dodefault(){}这个方法后面添加一个 function domembers(){}的方法

这个方法中执行得到用户总数的业务逻辑,需要调用 user模型(model user.class.php)的get_count方法得到总数,并将总数发送的页面中,并调用members.htm这个文件显示出来,那么这个方法可以这样写

function domembers(){

    $members=$_ENV['user']->get_count();//此方法若model方法中没有,需要在model(user.class.php)中添加,详细请参考MVC中的模型(Model) 此方法可得到总人数;

    $this->view->assign('count',$members);//调用视图将总人数复制给页面上的count变量,页面上可以用count表示总人数

    $this->view->display('members')//调用视图显示/view/default/members.htm视图文件 详细请参看MVC中的视图(View)


}

这样添加一个新的业务逻辑就完成了

参考来源[ ]

http://kaiyuan.hudong.com/

HDWIKI使用手册导航

HDWIKI安装

安装教程

HDWiki使用

前台使用说明 | 用户管理 | 模板管理 | 插件管理 | 数据库管理 | 站内统计 | Map功能 | 基本设置 | 站点设置 | 扩展设置 | 内容设置 | 友情链接及广告管理 | 分类管理 | 词条管理 | 数据调用 | 其他内容管理 | 礼品商店 | 图片及木马扫描 | Apache伪静态 | IIS伪静态 | Nginx伪静态 | 通用样式解读 | 样式使用规则 | 数据库结构说明 | 模板说明 | 函数类参考 |软件包结构 | HDWiki运行机制和原理 |编码规范 |MVC中的控制器 | 框架简介 | 高级应用 | MVC中的视图 | MVC中的模型 | HDWiki与PHPCMS整合 | HDWiki与PHPWind整合 | HDWiki与DEDECMS整合 | HDWiki与UCenter整合 | 可视化编辑使用说明 | 模块区版块制作教程 | 模版共享

HDWiki插件

插件开发指南 | 许愿墙插件开发实例 | 模版与标签 | 宣传中心 | 友情链接申请 | 数据调用 | 互动摸摸