diff options
Diffstat (limited to 'vendor/smarty/smarty/demo/plugins/cacheresource.apc.php')
-rw-r--r-- | vendor/smarty/smarty/demo/plugins/cacheresource.apc.php | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/vendor/smarty/smarty/demo/plugins/cacheresource.apc.php b/vendor/smarty/smarty/demo/plugins/cacheresource.apc.php new file mode 100644 index 000000000..7867cc598 --- /dev/null +++ b/vendor/smarty/smarty/demo/plugins/cacheresource.apc.php @@ -0,0 +1,85 @@ +<?php + +/** + * APC CacheResource + * CacheResource Implementation based on the KeyValueStore API to use + * memcache as the storage resource for Smarty's output caching. + * * + * + * @package CacheResource-examples + * @author Uwe Tews + */ +class Smarty_CacheResource_Apc extends Smarty_CacheResource_KeyValueStore +{ + /** + * Smarty_CacheResource_Apc constructor. + * + * @throws \Exception + */ + public function __construct() + { + // test if APC is present + if (!function_exists('apc_cache_info')) { + throw new Exception('APC Template Caching Error: APC is not installed'); + } + } + + /** + * Read values for a set of keys from cache + * + * @param array $keys list of keys to fetch + * + * @return array list of values with the given keys used as indexes + * @return boolean true on success, false on failure + */ + protected function read(array $keys) + { + $_res = array(); + $res = apc_fetch($keys); + foreach ($res as $k => $v) { + $_res[ $k ] = $v; + } + return $_res; + } + + /** + * Save values for a set of keys to cache + * + * @param array $keys list of values to save + * @param int $expire expiration time + * + * @return boolean true on success, false on failure + */ + protected function write(array $keys, $expire = null) + { + foreach ($keys as $k => $v) { + apc_store($k, $v, $expire); + } + return true; + } + + /** + * Remove values from cache + * + * @param array $keys list of keys to delete + * + * @return boolean true on success, false on failure + */ + protected function delete(array $keys) + { + foreach ($keys as $k) { + apc_delete($k); + } + return true; + } + + /** + * Remove *all* values from cache + * + * @return boolean true on success, false on failure + */ + protected function purge() + { + return apc_clear_cache('user'); + } +} |