1
0
This repository has been archived on 2025-06-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
archives
bundled-libs
Cache
HTTP
Net
Onyx
PEAR
Smarty
demo
configs
plugins
cacheresource.apc.php
cacheresource.memcache.php
cacheresource.mysql.php
cacheresource.pdo.php
cacheresource.pdo_gzip.php
resource.extendsall.php
resource.mysql.php
resource.mysqls.php
templates
index.php
libs
COMPOSER_RELEASE_NOTES.txt
COPYING.lib
INHERITANCE_RELEASE_NOTES.txt
LICENSE
NEW_FEATURES.txt
README
README.md
README_SMARTY_CACHING_PURPOSES.txt
SMARTY_2_BC_NOTES.txt
SMARTY_3.0_BC_NOTES.txt
SMARTY_3.1_NOTES.txt
change_log.txt
composer.json
error_reporting.ini
Text
XML
composer
docs
katzgrau
psr
simplepie
tests
zendframework
.current_version
PEAR.php
PEAR5.php
autoload.php
create_release.sh
serendipity_generateFTPChecksums.php
deployment
docs
htmlarea
include
lang
plugins
sql
templates
templates_c
tests
uploads
.gitignore
README.markdown
checksums.inc.php
comment.php
composer.json
composer.phar
exit.php
index.php
rss.php
serendipity.css.php
serendipity_admin.php
serendipity_admin_image_selector.php
serendipity_config.inc.php
serendipity_xmlrpc.php
wfwcomment.php
LuckyCoinkydink/bundled-libs/Smarty/demo/plugins/cacheresource.apc.php
2018-08-17 09:35:36 +02:00

84 lines
1.9 KiB
PHP

<?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
{
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');
}
}