<?php/*
* This file is part of the Assetic package, an OpenSky project.
*
* (c) 2010-2013 OpenSky Project Inc
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/namespaceAssetic\Cache;
/**
* Uses APC to cache files
*
* @author André Roaldseth <andre@roaldseth.net>
*/class ApcCacheimplements CacheInterface {
public $ttl = 0;
/**
* @see CacheInterface::has()
*/
public functionhas($key) {
returnapc_exists($key);
}
/**
* @see CacheInterface::get()
*/
public functionget($key) {
$value = apc_fetch($key, $success);
if (!$success) {
thrownew\RuntimeException('There is no cached value for ' . $key);
}
return$value;
}
/**
* @see CacheInterface::set()
*/
public functionset($key, $value) {
$store = apc_store($key, $value, $this->ttl);
if (!$store) {
thrownew\RuntimeException('Unable to store "' . $key . '" for ' . $this->ttl . ' seconds.');
}
return$store;
}
/**
* @see CacheInterface::remove()
*/
public functionremove($key) {
returnapc_delete($key);
}
}