UCHOME2.0缓存机制分析
缓存分为“模板文件缓存”、“模块数据缓存”、“系统配置缓存”以及“其他缓存”
模板文件缓存机制(采用从顶向下的方法来分析)
1:在要显示的页面通过include template($name) 语句来包含被编译后的模板文件
2:template($name)函数解释
大致过程为如果模板缓存文件不存在则重新编译模板文件,存在则直接调用缓存文件以显示
3:模板文件编译:parse_template($tpl)
传递的参数:为不包含文件类型后缀的完整文件路径
函数功能:替换掉模板标签,使其编译成PHP代码
模块数据缓存
A:管理员在后台可以设置是否进行模块缓存以及一文本模式缓存还是储存到数据库,同时还可以设置时储存到一个表还是多个表中。
若选在储存在数据库中,则被保存于cache cahe1 chae2 这些表中,若储存在文本中,则文本被存放于/data/block_cache 中。
B:设置数据被储存在config表中,一键值对的形式储存
C:所有模块缓存的更新周期是在代码中事先设定好的不能设置的,只能通过后台手动一次性的更新模块缓存,
D:当手动更新缓存之后,通过block_data_cache();函数进行缓存更新,也就是清除所有模块缓存
模块缓存的产生
A:在后台数据调用功能处设置添加模块
B:之后会生成一个模块调用代码
C:模块数据被储存在block表中
未完……………
系统配置缓存
A:管理员在后台设置好系统配置
B:数据被写入config表中 ,一键值对的形式存储
C:在common.php文件中,检测系统配置缓存文件dada_config.php是否存在,若存在则调用
不存在则生成系统配置缓存文件。$_SCONFIG数组用来储存系统配置数据的
D:其他缓存 语句之后包含APP缓存与他、用户APP缓存等缓存文件
首页缓存(随便看看缓存)
首页一般是通过source/network.php文件来控制的,所以这里分析随便看看(network)的缓存
一:随便看看配置缓存
A:在管理员后台的随便看看处设置,将设置要显示的数目以及类别全部存在缓存文件
data\data_network.php 中,而不存入数据库
B:在source/network.php中调用该配置缓存文件
二:随便看看数据缓存
如果在随便看看配置里设置了缓存的配置的话则会生成
这些缓存文件
下面以BLOG为例子来说明数据缓存的机制:
A:通过check_network_cache(‘blog’)检测blog数据缓存是否存在,若存在则将数据存入$bloglist数组中
B:若不存在缓存文件则通过查询数据库得到最新blog数据,存入$bloglist数组中 并生成缓存数据文件data\cache_network_blog.txt