Savetheinternet
13 years ago
5 changed files with 136 additions and 53 deletions
@ -0,0 +1,95 @@ |
|||||
|
<?php |
||||
|
class Cache { |
||||
|
private static $cache; |
||||
|
public static function init() { |
||||
|
global $config; |
||||
|
|
||||
|
switch($config['cache']['enabled']) { |
||||
|
case 'memcached': |
||||
|
self::$cache = new Memcached(); |
||||
|
self::$cache->addServers($config['cache']['memcached']); |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
public static function get($key) { |
||||
|
global $config, $debug; |
||||
|
|
||||
|
if(!self::$cache) |
||||
|
self::init(); |
||||
|
|
||||
|
$data = false; |
||||
|
switch($config['cache']['enabled']) { |
||||
|
case 'memcached': |
||||
|
$data = self::$cache->get($key); |
||||
|
break; |
||||
|
case 'apc': |
||||
|
$data = apc_fetch($key); |
||||
|
break; |
||||
|
case 'xcache': |
||||
|
$data = xcache_get($key); |
||||
|
break; |
||||
|
} |
||||
|
|
||||
|
// debug |
||||
|
if($data && $config['debug']) { |
||||
|
$debug['cached'][] = $key; |
||||
|
} |
||||
|
|
||||
|
return $data; |
||||
|
} |
||||
|
public static function set($key, $value, $expires = false) { |
||||
|
global $config; |
||||
|
|
||||
|
if(!self::$cache) |
||||
|
self::init(); |
||||
|
|
||||
|
if(!$expires) |
||||
|
$expires = $config['cache']['timeout']; |
||||
|
|
||||
|
switch($config['cache']['enabled']) { |
||||
|
case 'memcached': |
||||
|
self::$cache->set($key, $value, $expires); |
||||
|
break; |
||||
|
case 'apc': |
||||
|
apc_store($key, $value, $expires); |
||||
|
break; |
||||
|
case 'xcache': |
||||
|
xcache_set($key, $value, $expires); |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
public static function delete($key) { |
||||
|
global $config; |
||||
|
|
||||
|
if(!self::$cache) |
||||
|
self::init(); |
||||
|
|
||||
|
switch($config['cache']['enabled']) { |
||||
|
case 'memcached': |
||||
|
self::$cache->delete($key); |
||||
|
break; |
||||
|
case 'apc': |
||||
|
apc_delete($key); |
||||
|
break; |
||||
|
case 'xcache': |
||||
|
xcache_unset($key); |
||||
|
break; |
||||
|
} |
||||
|
} |
||||
|
public static function flush() { |
||||
|
global $config; |
||||
|
|
||||
|
if(!self::$cache) |
||||
|
self::init(); |
||||
|
|
||||
|
switch($config['cache']['enabled']) { |
||||
|
case 'memcached': |
||||
|
return self::$cache->flush(); |
||||
|
case 'apc': |
||||
|
return apc_clear_cache(); |
||||
|
} |
||||
|
|
||||
|
return false; |
||||
|
} |
||||
|
} |
||||
|
|
Loading…
Reference in new issue