HDWiki/MVC中的模型
概述[ ]
MVC中的模型model主要负责功能部分,绝大部分的功能在此实现,模型对整个功能负责,它能调用数据库或者缓存文件得到数据.
模型(model)文件存放于 model文件夹中,命名基本以功能为主,例如doc.class.php表示就是词条相关的模型,user.class.php就是用户相关的模型
结构[ ]
示例代码如下(以user.class.php为例):
!defined('IN_HDwiki') && exit('Access Denied'); class usermodel { var $db; var $base; function usermodel(&$base) { $this->base = $base; $this->db = $base->db; } function get_user($field,$value){ return $this->db->fetch_first("SELECT * FROM ".DB_TABLEPRE."user WHERE $field='$value'"); } ...... } ?>
相关解释:
1、!defined('IN_HDwiki') && exit('Access Denied'); 每个model文件都是以此开头表示必须是HDwiki内部调用
2、class usermodel 每个model类的名称均是 文件名 + model 例如,文件是user.class.php 则类名为usermodel,在control调用就是 $_ENV['user']->somefunction();
3、每个模型类必须有构造函数,function usermodel 做初始化数据 ,其中:
$this->base=$base; 载入base类,每个model类都需要这样调用
$this->db=$base->db;调用数据库类
4、function get_user方法就是我们具体的功能函数了,通常是调用数据库已去的数据,根据要求将取得的数据返回给control控制器
开发[ ]
若要在某个model增加新的功能,以上面结构为例,只需要增加新的方法即可,以增加个总用户个数为例,control控制器调用$_ENV['user']->get_user_count();则我们需要增加个get_user_count(),在这个方法中,通过数据库得到总人数后返回给control,这个新的功能便添加完成
function get_user_count(){ return $this->db->result_first("select count(*) num from wiki_user"); }
若我们需要新增一个model,则需要按照上例中创建一个model文件并按照规定给该model命名,做和上例相同的初始化工作,然后添加需要的方法即可,当我们需要调用这个model的时候需要做以下两个步骤
1.在某个control控制器文件类的 control方法里面加入$this->load('user'); 其中user便是模型的名字
2.在某个control控制器文件调用该模型的某个方法使用 $_ENV['user']->get_user_count();其中$_ENV['user']的user同上,是模型的名字,get_user_count()是user模型中的方法
这样添加一个新的模型就完成并可以使用了
参考来源[ ]
HDWIKI使用手册导航 | ||||||
---|---|---|---|---|---|---|
|