PHP完全自学手册(珍藏版) 中文pdf扫描版下载
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的文章页面时缓存就会失效,从而查询数据库,重新生成缓存。