会点点代码修改,会各种程序上手运营,会电商,会运营,还会吃点喝点!*_*
当前位置:首页- emlog MVC解构7 - 工具类之Cache

emlog MVC解构7 - 工具类之Cache

作者:李元波发布时间:2024-12-12 08:45分类: 日常 浏览:8评论:0


导读:emlog拥有各种各样的工具类,保存在include/lib/里。下面首先来分析非常重要的Cache文本缓存类。属性表: 属性 注释 private $db 一个数据库类...

emlog拥有各种各样的工具类,保存在include/lib/里。
下面首先来分析非常重要的Cache文本缓存类。

属性表:

属性 注释
private $db 一个数据库类实例,一个MySql或者MySqlii类实例,两种类属性和方法一致
private static $instance = null 静态属性,一个Cache类的实例
private $options_cache 站点配置缓存,emlog_options表的数组形式
private $user_cache 用户信息缓存,emlog_user表的数组形式
private $sta_cache 'twnum' => 此用户发表的微语数量
    ),
);
private $comment_cache 'content' => 评论内容,
);
private $tags_cache 'usenum' => 标签被使用的次数
);
private $sort_cache 侧边栏分类缓存数组,emlog_sort表的数组形式
private $link_cache 友情链接缓存数组,emlog_link表的数组形式
private $navi_cache 导航缓存数组,emlog_navi表的数组形式
private $newlog_cache 最新文章缓存数组,一般是10篇文章
private $newtw_cache 最新微语缓存数组,一般是10条微语
private $record_cache 文章归档缓存数组,根据月和日为分组方式归档文章
private $logtags_cache 文章标签缓存数组,每篇文章标签构成二级数组
private $logsort_cache 文章分类缓存数组,每篇文章分类构成二级数组
private $logalias_cache 文章别名缓存数组


方法表:

方法 注释
private function __construct() 构造方法,配置$this->db实例化数据库连接
public static function getInstance() 静态方法,配置$this->instance为数据库连接实例并返回
function updateCache($cacheMethodName=null) 用以调用内部类似mc_xxx()更新缓存,参数$cacheMethodName默认为null,此时函数将调用所有Cache类的mc_xxx方法,更新所有缓存;更新单个缓存时,$cacheMethodName配置为需要更新缓存的属性字符串,如'options',则函数将单独调用mc_options();更新多个缓存时,$cacheMethodName配置为多个需要更新缓存的属性字符串组成的数组,如array('options','user'),则函数将按顺序调用mc_options()和mc_user()。
注意:
更新缓存的方法以mc_开头,后面跟更新的属性名称
private function mc_options() 站点配置缓存更新,将emlog_options表简单处理并serialize后的字符串缓存,调用writeCache写入options.php文件,失败则仍以数组形式保留在$options_cache属性里
private function mc_user() 用户信息缓存更新,emlog_user表简单处理并serialize后的字符串缓存,调用writeCache写入user.php文件,失败则仍以数组形式保留在$user_cache属性里
private function mc_sta() 站点统计缓存更新,通过统计查询获取的站点统计信息处理并serialize后的字符串缓存,调用writeCache写入sta.php文件,失败则仍以数组形式保留在$sta_cache属性里
private function mc_comment() 最新评论缓存更新,根据Options配置的个数获取侧边栏输出的最新评论的信息处理并serialize后的字符串缓存,调用writeCache写入comment.php文件,失败则仍以数组形式保留在$comment_cache属性里
private function mc_tags() 侧边栏标签缓存更新,处理后serialize后的字符串缓存,调用writeCache写入tags.php文件,失败则仍以数组形式保留在$tags_cache属性里
private function mc_sort() 侧边栏分类缓存更新,emlog_sort表简单处理并serialize后的字符串缓存,调用writeCache写入sort.php文件,失败则仍以数组形式保留在$sort_cache属性里
private function mc_link() 友情链接缓存更新,emlog_link表简单处理并serialize后的字符串缓存,调用writeCache写入link.php文件,失败则仍以数组形式保留在$link_cache属性里
private function mc_navi() 导航缓存更新,emlog_navi表简单处理并serialize后的字符串缓存,调用writeCache写入navi.php文件,失败则仍以数组形式保留在$navi_cache属性里
private function mc_newlog() 最新文章缓存更新,根据Options配置的个数获取侧边栏输出的最新文章的信息处理并serialize后的字符串缓存,调用writeCache写入newlog.php文件,失败则仍以数组形式保留在$newlog_cache属性里
private function mc_newtw() 最新微语缓存更新,根据Options配置的个数获取侧边栏输出的最新文章的信息处理并serialize后的字符串缓存,调用writeCache写入newtw.php文件,失败则仍以数组形式保留在$newtw_cache属性里
private function mc_record() 文章归档缓存更新,根据月和日为分组方式归档文章,处理信息并serialize后的字符串缓存,调用writeCache写入record.php文件,失败则仍以数组形式保留在$record_cache属性里
private function mc_logtags() 文章标签缓存更新,每篇文章标签构成二级数组,处理信息并serialize后的字符串缓存,调用writeCache写入logtags.php文件,失败则仍以数组形式保留在$logtags_cache属性里
private function mc_logsort() 文章分类缓存更新,每篇文章分类构成二级数组,处理信息并serialize后的字符串缓存,调用writeCache写入logsort.php文件,失败则仍以数组形式保留在$logsort_cache属性里
private function mc_logalias() 文章别名缓存更新,处理信息并serialize后的字符串缓存,调用writeCache写入logalias.php文件,失败则仍以数组形式保留在$logalias_cache属性里
function cacheWrite($cacheData,$cacheName) 写入缓存,$cacheData是更新缓存的函数将数组serialize之后的结果,$cacheName是缓存属性的名称。
一般情况下,数据将保存在EMLOG_ROOT.'/content/cache/'.$cacheName.'.php'文件里面,php文件保存是因为添加必要的代码后可以保证用户无法通过访问地址获取缓存数据,数据为"<?php exit;//".$cacheData,访问此文件时将直接退出,不会访问后面的数据。另外写入后实例属性保存的数据将被清空,需要用readCache()重新将数据从文件获取到属性。
特殊情况下,就是文件无法打开写入的情况下,缓存将仍以字符串的形式保留在缓存实例的属性里。
function readCache($cacheName) 读取缓存文件,$cacheName是缓存属性的名称,如果实例相应的属性里面已经有数据,则直接返回属性保存的数据。如果缓存不存在则自动生成缓存后再把数据写入属性里,经过去除前缀和unserialize的处理后返回属性保存的数据。

 

标签:


发表评论: