小技巧:页面缓存于动态缓存的使用

哎,在坛子上吆喝了半天没人吊我啊,还得我研究了1天,不过还好研究明白了

YII的确是没的说不过唯一要说的就是残缺的文档,真是害死人啊,最近终于研究了其缓存的使用,我使用的是整页缓存,这里就涉及一个问题就是部分地方不缓存,好了,先看看如何配置

1.在控制器里面增加函数


public function filters()	{	 return array(	 array(	 ‘COutputCache+index’,	 ‘duration’ => 5,’varyByParam’=>array(‘id’),	 ),	 );	}

2.其中大家可以看到 COutputCache+index,这里的意思是使用COutputCache类缓存文件,后面的加index指的是只缓存actionIndex函数,如果你需要缓存其他的就继续增加COutputCache+index,hello,test…如果没有后面的+那么默认是缓存整个控制器里面的所有方法

  1. varyByParam这个的意思是根据哪些来生产缓存,比如当用户访问分页的时候,是根据pageid那么久可以把pageid增加进去,这样每当pageid更换的时候,缓存也会更换,不至于看到的内容都是一样的

4.动态内容,在模板里面使用这句话


$this->renderDynamic(‘widget’,'application.extensions.uinfo’,array(‘uid’=>’hahahah!’), true);

其中可以看到,extensions.uinfo,这里指的是extensions/uinfo.php,后面的array()这里是传递参数用的,比如我写的是uid,那么在uinfo.php里面就要增加变量$uid,不过我认为大家可以写一个__get/__set函数,这样就省去写了

至于后面的true我也不知道啥意思,郁闷

多研究研究就好了 :)

$this->renderDynamic(‘widget’,'application.extensions.uinfo’,array(‘uid’=>’hahahah!’), true);

这里的true应该是 直接返回内容不显示

默认是false 会把内容直接显示出来。