基于模型的缓存
自定义模型内使用缓存
可以通过基础模型类 graceModel 的内置函数 cache()、clearCache()、removeCache() 来创建、删除缓存。
cache() 函数
功能 : 创建缓存( 自动判断缓存有效性 );
参数 :
$name : 缓存名称
$id = null : 影响 id,字符串或数组形式 ( 作用 : 同一个缓存名称因为参数不同而产生不同的缓存数据 );
$queryMethod : 缓存数据不存在时执行的数据查询函数,建议以 __( 2个下划线 )开头;
$timer = 3600 : 缓存游戏时间,单位 : 秒;
$isSuper = true : 是否为一个全局缓存;// 非全局缓存会在名称前自动添加控制器及方法名;
返回 : 经过缓存机制处理的缓存数据
clearCache() 函数
功能 : 清空全部缓存;
removeCache() 函数
功能 : 清空全部缓存;
参数 :
$name : 缓存名称
$id = null : 影响 id,字符串或数组形式 ( 作用 : 同一个缓存名称因为参数不同而产生不同的缓存数据 );
$isSuper = true : 是否为一个全局缓存;
模型类演示代码
<?php namespace phpGrace\models; class students extends \graceModel{ public $tableName = 'students'; public $tableKey = 'st_id'; // 获取列表 缓存模式 public function getList(){ // 模型的 cache 函数会返回经过缓存逻辑处理后的最终数据结果 return $this->cache( 'studentsList', PG_PAGE, // 每一页数据一个缓存 '__getStudentsList' ); } // 获取列表 动态数据库查询模式 protected function __getStudentsList(){ echo '没有缓存数据,执行数据查询'; $db = db('students'); return $db->page(2)->order('st_id desc')->fetchAll(); } }
调用模型类代码
<?php class indexController extends grace{ public $studentsModel; public function __construct(){ parent::__construct(); // 初始化 students 模型 $this->studentsModel = new \phpGrace\models\students(); } public function index(){ // 获取列表数据 $studentsList = $this->studentsModel->getList(); p($studentsList); } // 通过控制器利用模型清空缓存 public function clearAllCache() { // $this->clearCache(); 可以通过控制器直接清楚 $this->studentsModel->clearCache(); } // 通过控制器删除某个具体缓存 public function delCache() { // 删除 studentsList 的第一页缓存数据 $this->studentsModel->removeCache('studentsList', 1); } }