第六章:【UCHome二次开发】缓存机制解析
来源:互联网 发布:淘宝苹果专卖店 编辑:程序博客网 时间:2024/05/16 15:57
UCHome中的常用数据皆通过调用缓存来实现读取,包括系统配置、用户组、群组栏目、用户栏目、词语屏蔽、积分规则、广告、用户向导任务、模块、MYOP默认应用等信息。其中模板缓存的使用前面单独介绍过,见《【UCHome二次开发】模板解析》。
UCHome中常用数据是作为全局变量来使用的,具体用法可参考《【UCHome二次开发】全局变量》。以下着重介绍缓存机制的具体实现。
1、缓存数据文件的生成
UCHome生成的缓存数据文件位于/data/目录下。
缓存生成的相关函数位于/source/function_cache.php文件中,生成缓存的函数罗列如下:
- config_cache() 更新配置信息缓存,生成缓存文件data_config.php
- usergroup_cache() 更新用户组缓存,生成缓存文件data_usergroup.php
- profilefield_cache() 更新用户栏目缓存,生成缓存文件data_profilefield.php
- profield_cache() 更新群组栏目缓存,生成缓存文件data_profield.php
- censor_cache() 更新词语屏蔽缓存,生成缓存文件data_censor.php
- creditrule_cache() 更新积分规则,生成缓存文件data_creditrule.php
- ad_cache() 更新广告缓存,生成缓存文件data_ad.php
- task_cache() 更新用户向导任务,生成缓存文件data_task.php
- block_cache() 更新模块,生成缓存文件data_block.php
- tpl_cache() 更新模板缓存,清空模板缓存文件夹/data/tpl_cache/下所有文件使模板缓存重新生成
- block_data_cache() 更新模块缓存,清空模板缓存数据使缓存重新生成
- userapp_cache() 更新MYOP默认应用,生成缓存文件data_userapp.php
- app_cache() 更新应用名,生成缓存文件data_app.php
除了模板和模块数据外,其他的只需调用对应的函数就可生成对应的缓存数据文件。具体缓存生成的数据格式可查看对应文件。
2、缓存数据文件的分析
我们来看一下其中一个缓存文件,群组栏目缓存data_profield.php文件,如下:
<?phpif(!defined('IN_UCHOME')) exit('Access Denied');$_SGLOBAL['profield']=Array ( 1 =>Array ( 'fieldid' => 1, 'title' => '班级', 'formtype' =>'multi', 'inputnum' =>100, 'mtagminnum' =>0, 'manualmoderator'=> 1, 'manualmember'=> 1 ) 2 =>Array ( 'fieldid' => 2, 'title' =>'实践活动', 'formtype' =>'text', 'inputnum' =>100, 'mtagminnum' =>0, 'manualmoderator'=> 1, 'manualmember'=> 1 ) )?>
第二行代码保证了缓冲数据无法被直接调用,而要求在UCHome中才有效。当然这是君子协定,只要在调用代码前define一下IN_UCHOME即可绕过验证。
之后的代码其实只是做了变量赋值,将群组栏目数据赋值到$_SGLOBAL['profield']中,因为之前$_SGLOBAL以被定义为global全局变量,因为群组栏目数据便能全局访问了。
3、缓存数据文件的使用
从上面分析可看出,缓存数据文件其实就是php代码文件,直接引入执行。因而我们的缓存使用也就很方便了,只需将缓存文件使用include/include_once/require/require_once等函数引入进来即可使用,调用对应的变量来获取缓存的数据。
但为了保证缓存的存在,使用时最好加一个检测;如果缓存数据不存在,则先生成一遍缓存数据。综合起来,缓存的代码参考如下:
if(!@include_once(S_ROOT.'./data/data_usergroup.php')) { include_once(S_ROOT.'./source/function_cache.php');usergroup_cache();}
调用不同的缓存请更换对应的缓存文件和缓冲函数。
4、缓存数据文件的手动更新
在管理员成员的后台高级管理里有一项是缓存更新,可用户手动更新缓存,在系统全局配置变动后建议手动做一次缓存更新。
所有章节下载:http://download.csdn.net/source/3579636
文章摘自:http://wenku.baidu.com/view/ffd8a5c14028915f804dc2e0.html- 第六章:【UCHome二次开发】缓存机制解析
- 第五章:【UCHome二次开发】模板解析
- uchome 二次开发 AJAX解析
- 第三章:【UCHome二次开发】common.php文件解析
- 第十三章:【UCHome二次开发】与UCenter的交互解析
- 第十四章:【UCHome二次开发】uchome通用方法
- 第二章:【UCHome二次开发】基础
- 第十二章:【UCHome二次开发】全局变量
- UCHOME二次开发
- 第七章:【UCHome二次开发】模板语法说明
- 第八章:【UCHome二次开发】模板页面说明
- 第九章:【UCHome二次开发】主要文件说明
- 第十章:【UCHome二次开发】模板修改
- 第十一章:【UCHome二次开发】功能修改
- uchome二次开发记录
- uchome的二次开发有感
- uchome二次开发参考资料汇总
- UcHome二次开发调试技巧
- 保护眼睛,计算机窗口最科学的颜色
- flex中保存cookie,关闭IE窗口,清除cookie
- Ruby1.9.2之——关联Excel
- plsql知识梳理-序列
- 徘徊
- 第六章:【UCHome二次开发】缓存机制解析
- OAUTH
- 为谁停留,使者的过客
- 我想我是适合独处的人
- Selenium测试环境搭建
- Maven 之setting.xml pom.xml
- Essbase和Cognos的对比
- 安天系统安全管理软件之便携化
- 第七章:【UCHome二次开发】模板语法说明