最新消息: 新版网站上线了!!!

YII页面缓存

1、在应用配置文件中开启缓存
1
2
3
4
cache' => array (
    'class' ='system.caching.CFileCache',
    'directoryLevel' =2,
),


class 指定我们使用的是文件缓存

directoryLevel 指定了缓存的目录深度

 

我们也可以使用其他的缓存,只需把class换成下面对应的类名即可:

CMemCache: 使用 PHP memcache 扩展.

CApcCache: 使用 PHP APC 扩展.

CDbCache: 使用一张数据库表来存储缓存数据。

CFileCache: 使用文件来存储缓存数据。 特别适用于大块数据(例如页面)。

 

对于缓存,默认缓存到的位置为protected/runtime/;

 

2、接下来在需要做缓存的控制器里面定义过滤器

 

 

COutputCache 是用于处理缓存的类,如果只填'COutputCache',则控制器里所有action都会通过缓存过滤,定义'COutputCache + view',表示只对以下方法进行缓存:actionView

duration 是缓存的时间,单位是秒,

varyByParam 是指定一系列GET参数名称列表, 使用相应的值去确定缓存内容的版本,即同一个action用于区分是不同页面的的参数,此处我以id和page来区分不同页面。   

dependency'指定缓存失效依赖关系:可指定文件或数据库;本文采用的是数据库依赖CDbCacheDependency;

   本例指定的是数据库,通过数据表的某个值的变化来确定缓存是否失效。例如,如果在表中修改了文章ID为28的内容,我们会更新lastmodfly字段为最新的时间戳。这样再次访问ID为28的文章页面时缓存就会失效,从而查询数据库,重新生成缓存。

转载请注明:谷谷点程序 » YII页面缓存