「Php/Smarty/MemcacheクラスSmarty3」の版間の差分
ナビゲーションに移動
検索に移動
ページの作成:「<pre> class Smarty_CacheResource_Memcache extends Smarty_CacheResource_Custom { private $_m; public function __construct($memcache) { $this->_m = $me...」 |
編集の要約なし |
||
| 52行目: | 52行目: | ||
} | } | ||
} | } | ||
</pre> | |||
呼び出し | |||
<pre> | |||
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) | |||
); | |||
</pre> | </pre> | ||
2026年4月2日 (木) 06:56時点における版
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)
);