- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Smarty自定义缓存实现
Smarty ⾃定义缓存实现
⾃定义缓存实现
Smarty默认是使⽤基于⽂件的缓存机制,作为可选的⽅案,你可以⾃定义⼀套缓存机
制的实现,来 ⾏缓存⽂件的读写和删除。
温馨提⽰
Smarty2使⽤$cache_handler_func的回调函数来实现此功能。 ⽽Smarty3使⽤了
Smarty_CacheResource模块来实现。
⾃定义缓存实现可以实现类似下⾯的⽬的: ⽤更快的存储引擎来替代较慢的⽂件系
统, 使缓存可以分布到多台服务器上。
Smarty可以通过API Smarty_CacheResource_Custom 或
者Smarty_CacheResource_KeyValueStore 来实现缓存机
制。Smarty_CacheResource_Custom是⽐较简单的API ,直接通过覆盖读、写、
删除等操作来实现缓存机制。 该API可以使⽤于任何你觉得适合的⽅式,或存储到任
何你觉得适合的地⽅。Smarty_CacheResource_KeyValueStore的API可让你使
⽤K-V存储模式 (⽐如APC ,Memcache等)来实现缓存机制。 更 ⼀步,就算是多层
的缓存组如a|b|c ,该API也让你可以通过删除缓存组a来将整个嵌套的缓存组删
除, 即使K-V存储机制本⾝⽆法实现这种层次结构的存储。
⾃定义缓存可以放到$plugins_dir⽬录下并命名
为cacheresource.foobarxyz.php, 或者在运⾏时通过
registerCacheResource() 来 ⾏注册。 上⾯两种⽅式都必须设
置$caching_type 来启动你的⾃定义缓存机制。
Example 15.15. 通过MySQL实现⾃定义缓存机制
?php
require_once libs/Smarty .class.php;
$smarty = new Smarty();
$smarty-caching_type = mysql;
/**
* MySQL 缓存
*
* 通过⾃定义缓存的接⼝API,让MySQL来作为Smarty的输出缓存存储器。
*
* 表定义:
* preCREATE TABLE IF NOT EXISTS `output_cache` (
* `id` CHAR(40) NOT NULL COMMENT sha1 hash,
* `name` VARCHAR(250) NOT NULL,
* `cache_id` VARCHAR(250) NULL DEFAULT NULL,
* `compile_id` VARCHAR(250) NULL DEFAULT NULL,
* `modified` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
* `content` LONGTEXT NOT NULL,
* PRIMARY KEY (`id`),
* INDEX(`name`),
* INDEX(`cache_id`),
* INDEX(`compile_id`),
* INDEX(`modified`)
* ) ENGINE = InnoDB; /pre
*
* @package CacheResource-examples
* @author Rodney Rehm
*/
class Smarty_CacheResource_Mysql extends Smarty_CacheResource_Cust
// PDO 对象
protected $db;
protected $fetch;
protected $fetchTimestamp;
protected $save;
public function __construct() {
try {
$this-db = new PDO(mysql:dbname=test;host=
} catch (PDOException $e) {
throw new SmartyException(Mysql 源⽆法链接: . $e-get
}
$this-fetch = $this-db-prepare(SELECT modified, conten
$this-fetchTimesta
您可能关注的文档
- OA V3.0Sp2安装维护手册.pdf
- OCS7.1SIM卡消费软件操作说明书.pdf
- Oracle双机配置安装.pdf
- oracle常见连接错误(无监听_无网络服务名).doc
- Oracle T7-1产品彩页.pdf
- os_08文件管理.ppt
- OTA平台中补丁下载系统的设计与实现.pdf
- p4-1微机原理.pdf
- pbyang的maven教案.docx
- PCI数据采集卡WDM驱动程序设计中关键问题研究.pdf
- 2023年11月山南地区直机关遴选公务员面试真题带详细解析.docx
- 2023年11月宜昌市直机关遴选公务员面试真题带答案详解.docx
- 2022年9月海南州直遴选面试真题回忆版.docx
- 2022年9月牡丹江市直机关遴选公务员面试真题附带题目详解.docx
- 2022年11月温州市直机关遴选公务员面试真题带答案详解.docx
- 2023年11月广东省直机关遴选公务员面试真题附详解.docx
- 2022年2月秦皇岛市直机关遴选公务员面试真题附详细解析.docx
- 2022年2月遂宁市直机关遴选公务员面试真题附解析.docx
- 2022年9月海西州直机关遴选公务员面试真题回忆版汇总.docx
- 2022年9月海南州直机关遴选公务员面试真题带答案详解.docx
最近下载
- 大数据数据分析项目实践报告.doc
- Unit 6 Electricity everywhere 第4课时 Writing 教学设计 沪教版英语七年级下册.docx
- 防爆电气设备安装与检验考核试卷.docx
- 情态动词-专题课件(共28张课件).ppt VIP
- 《GB 50318-2017城市排水工程规划规范 》最新解读.pptx
- 河南水投集团所属公司招聘笔试真题2024 .pdf
- Unit 2 Travelling Around 大单元整体教学设计-高中英语人教版必修第一册.docx
- 义务教育生物学课程标准(2022年版).docx
- 新人教版一年级数学下册应用题练习带答案(全套).pdf
- 汉字与服饰文化(文字学).ppt VIP
文档评论(0)