基于控制器的缓存
控制器内使用缓存
可以通过基础控制器类 grace 的内置函数 cache()、clearCache()、removeCache() 来创建、删除缓存。
cache() 函数
功能 : 创建缓存( 自动判断缓存有效性 );
参数 :
$name : 缓存名称
$queryMethod : 缓存数据不存在时执行的数据查询函数,建议以 __( 2个下划线 )开头;
$id = null : 影响 id,字符串或数组形式 ( 作用 : 同一个缓存名称因为参数不同而产生不同的缓存数据 );
$timer = 3600 : 缓存游戏时间,单位 : 秒;
$isSuper = true : 是否为一个全局缓存;// 非全局缓存会在名称前自动添加控制器及方法名;
clearCache() 函数
功能 : 清空全部缓存;
removeCache() 函数
功能 : 清空全部缓存;
参数 :
$name : 缓存名称
$id = null : 影响 id,字符串或数组形式 ( 作用 : 同一个缓存名称因为参数不同而产生不同的缓存数据 );
$isSuper = true : 是否为一个全局缓存;
演示代码
<?php class indexController extends grace{ public function index(){ $this->cache( 'studentsList', '__getStudentsList', // 函数名称 PG_PAGE, // 每一页数据一个缓存,即id ); // 最终缓存数据保存在 $this->缓存名称 变量内 p($this->studentsList); } protected function __getStudentsList(){ echo '没有缓存数据,执行数据查询'; $db = db('students'); return $db->page(2)->order('st_id desc')->fetchAll(); } // 通过控制器清空缓存、 public function clearAllCache() { $this->clearCache(); } // 通过控制器删除某个具体缓存 public function delCache() { // 删除 studentsList 的第一页缓存数据 $this->removeCache('studentsList', 1); } }