Adds expiration to a cache backend.
@author Kris Wallsmith <kris.wallsmith@gmail.com>
Expanded class hierarchy of ExpiringCache
class ExpiringCache implements CacheInterface {
private $cache;
private $lifetime;
public function __construct(CacheInterface $cache, $lifetime) {
$this->cache = $cache;
$this->lifetime = $lifetime;
}
public function has($key) {
if ($this->cache
->has($key)) {
if (time() < $this->cache
->get($key . '.expires')) {
return true;
}
$this->cache
->remove($key . '.expires');
$this->cache
->remove($key);
}
return false;
}
public function get($key) {
return $this->cache
->get($key);
}
public function set($key, $value) {
$this->cache
->set($key . '.expires', time() + $this->lifetime);
$this->cache
->set($key, $value);
}
public function remove($key) {
$this->cache
->remove($key . '.expires');
$this->cache
->remove($key);
}
}
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ExpiringCache:: |
private | property | ||
ExpiringCache:: |
private | property | ||
ExpiringCache:: |
public | function |
Returns the value for a key. Overrides CacheInterface:: |
|
ExpiringCache:: |
public | function |
Checks if the cache has a value for a key. Overrides CacheInterface:: |
|
ExpiringCache:: |
public | function |
Removes a value from the cache. Overrides CacheInterface:: |
|
ExpiringCache:: |
public | function |
Sets a value in the cache. Overrides CacheInterface:: |
|
ExpiringCache:: |
public | function |