control中调用model
原则是这样的,如果你的这个model在本control中大部分方法中都要用到,那么,就写在构造函数里面。
例如,名字为doc的control的构造函数如下:
function control(& $get,& $post){
$this->base( & $get,& $post);
$this->load("doc");
$this->load("category");
}
这里加粗的两个model,一个是doc,一个是category,都是本control每个方法差不多都要用到的,所以写到构造函数里面。如果不是这种情况,那么需要的时候再去load。例如:下面是浏览词条的时候,需要调用model名字为adv的。就是在使用前load的,并没有放到control的构造函数里面
function doview() {
......
$this->load('adv');
......
}
model中调用model,例如在名为adv的model中,有如下方法:
function view_filter($position){
......
$this->base->load('category');
......
}
这里加粗的就是关键的代码,因为每个model都有个属性base,这个就可以去load你想要的model了,使用起来也很简单。
使用HDwiki缓存
base类有个cache的属性,看如下代码:
function dodefault() {
$indexcache=$this->cache->getcache('indexcache',$this->setting['index_cache_time']);
if(!(bool)$indexcache){
$indexcache=...
$this->cache->writecache('indexcache',$indexcache);
}
}
要使用缓存,首先要给缓存取一个唯一的名字,这里例子中的缓存的名字就是“indexcache”,还要给你的缓存定一个过期时间,在getcache方法的第2个参数里面,如果为0,表示不过期,除非你删除。注意,缓存的时间单位为秒。