站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
HDWiki/MVC中的控制器
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
{{HDWiki top}} ==概述== [[MVC]]中的控制器control主要负责业务逻辑部分,所有的功能逻辑全部在此实现,控制器对整个功能负责,它调用模型(model)的方法实现它需要的功能,调用视图(view)的方法来显示[[数据]]. 控制器(control)文件存放于 control/文件夹中,命名基本以功能为主,例如doc.php表示就是词条相关的控制器,user.php就是用户相关的控制 ==结构== 示例代码如下: <pre> !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'); } ?> </pre> ==相关解释== 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这个文件显示出来,那么这个方法可以这样写 <pre> 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) } </pre> 这样添加一个新的业务逻辑就完成了 ==参考来源== http://kaiyuan.hudong.com/ {{HDWIKI}} [[category:HDWiki|M]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)
本页使用的模板:
模板:HDWIKI
(
编辑
)
模板:HDWiki top
(
编辑
)