Php/Smarty/MemcacheクラスSmarty3
class Smarty_CacheResource_Memcache extends Smarty_CacheResource_Custom
{
private $_m;
public function __construct($memcache)
{
$this->_m = $memcache;
}
protected function fetch($id, $name, $cache_id, $compile_id, &$content, &$mtime)
{
$key = md5($name . $cache_id . $compile_id);
$data = $this->_m->getCache($key);
if ($data === false) {
return false;
}
if (function_exists('gzuncompress')) {
$content = gzuncompress($data);
} else {
$content = $data;
}
$mtime = time();
return true;
}
protected function save($id, $name, $cache_id, $compile_id, $content, $mtime)
{
$key = md5($name . $cache_id . $compile_id);
if (function_exists('gzcompress')) {
$content = gzcompress($content);
}
return $this->_m->setCache($key, $content);
}
protected function delete($name, $cache_id, $compile_id, $exp_time)
{
$key = md5($name . $cache_id . $compile_id);
return $this->_m->delCache($key);
}
protected function purge()
{
return true;
}
}
呼び出し
require_once APPLICATION_PATH . '/models/MemcacheModel.php';
$cache = MemcacheModel::getInstance();
require_once APPLICATION_PATH . '/../library/Smarty_CacheResource_Memcache.php';
$this->registerCacheResource(
'memcache',
new Smarty_CacheResource_Memcache($cache)
);