78 lines
1.8 KiB
PHP
78 lines
1.8 KiB
PHP
<?php
|
|
|
|
// 幸運な偶然 - Lucky Coinkydink
|
|
// See LICENSE file for license information.
|
|
|
|
namespace LuckyCoin;
|
|
|
|
use LuckyCoin\ConfigContainer;
|
|
use voku\cache\Cache;
|
|
use voku\cache\CacheAdapterAutoManager;
|
|
use voku\cache\AdapterArray;
|
|
use voku\cache\AdapterOpCache;
|
|
|
|
class ContentCache
|
|
{
|
|
protected static $instance = null;
|
|
protected $cache_manager;
|
|
protected $cache;
|
|
|
|
public static function getInstance()
|
|
{
|
|
if (self::$instance === null) {
|
|
self::$instance = new self();
|
|
}
|
|
return self::$instance;
|
|
}
|
|
|
|
private function __construct()
|
|
{
|
|
// Configure voku/simple-cache to use templates_c as directory for the opcache files, the fallback
|
|
// when Memcached and Redis are not used.
|
|
|
|
$cfg = ConfigContainer::getInstance();
|
|
$cacheDir = $cfg->get('serendipityPath') . '/templates_c/simple_cache';
|
|
|
|
$this->cache_manager = new CacheAdapterAutoManager();
|
|
$this->cache_manager->addAdapter(
|
|
AdapterOpCache::class,
|
|
static function () use ($cacheDir) {
|
|
return $cacheDir;
|
|
}
|
|
);
|
|
|
|
$this->cache_manager->addAdapter(
|
|
AdapterArray::class
|
|
);
|
|
|
|
$this->cache = new Cache(
|
|
null,
|
|
null,
|
|
false,
|
|
true,
|
|
false,
|
|
false,
|
|
false,
|
|
false,
|
|
'',
|
|
$this->cache_manager,
|
|
false
|
|
);
|
|
}
|
|
|
|
public function addItem($key, $item, $ttl = 3600)
|
|
{
|
|
return $this->cache->setItem($key, $item, $ttl);
|
|
}
|
|
|
|
public function getItem($key)
|
|
{
|
|
return $this->cache->getItem($key);
|
|
}
|
|
|
|
public function clearCache()
|
|
{
|
|
return $this->cache->removeAll();
|
|
}
|
|
}
|