跳至内容

自定义缓存存储层

作为使用默认基于文件的缓存机制的替代方法,您可以指定一个自定义缓存实现,该实现将用于读取、写入和清除缓存文件。

通过自定义缓存实现,您可以使用更快的存储引擎替换较慢的文件系统,集中缓存以供多台服务器访问。

Smarty 要求实现扩展 \Smarty\Cacheresource\Base,但建议您扩展 \Smarty\Cacheresource\Custom\Smarty\Cacheresource\KeyValueStore

  • \Smarty\Cacheresource\Custom 是一个简单的 API,将所有读取、写入和清除调用定向到您的实现。此 API 允许您存储到您认为合适的任何位置和方式。
  • \Smarty\Cacheresource\KeyValueStore 允许您将任何 KeyValue-Store(例如 APC 或 Memcache)变成功能齐全的 CacheResource 实现。对于诸如“a|b|c”之类的深层缓存组的所有操作都会以一种方式为您处理,以保证清除缓存组“a”会清除所有嵌套组——即使 KeyValue-Stores 本质上不允许这种层次结构。

必须使用 Smarty\Smarty::setCacheResource() 在运行时注册自定义 CacheResource。

<?php

use Smarty\Smarty;
$smarty = new Smarty();

$smarty->setCacheResource(new My_CacheResource_Mysql());