ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
ExpiringCache.php
Go to the documentation of this file.
1 <?php
2 
3 /*
4  * This file is part of the Assetic package, an OpenSky project.
5  *
6  * (c) 2010-2014 OpenSky Project Inc
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11 
12 namespace Assetic\Cache;
13 
19 class ExpiringCache implements CacheInterface
20 {
21  private $cache;
22  private $lifetime;
23 
25  {
26  $this->cache = $cache;
27  $this->lifetime = $lifetime;
28  }
29 
30  public function has($key)
31  {
32  if ($this->cache->has($key)) {
33  if (time() < $this->cache->get($key.'.expires')) {
34  return true;
35  }
36 
37  $this->cache->remove($key.'.expires');
38  $this->cache->remove($key);
39  }
40 
41  return false;
42  }
43 
44  public function get($key)
45  {
46  return $this->cache->get($key);
47  }
48 
49  public function set($key, $value)
50  {
51  $this->cache->set($key.'.expires', time() + $this->lifetime);
52  $this->cache->set($key, $value);
53  }
54 
55  public function remove($key)
56  {
57  $this->cache->remove($key.'.expires');
58  $this->cache->remove($key);
59  }
60 }
Adds expiration to a cache backend.
__construct(CacheInterface $cache, $lifetime)
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.
Interface for a cache backend.
has($key)
Checks if the cache has a value for a key.