ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
FilesystemCache.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 
20 {
21  private $dir;
22 
23  public function __construct($dir)
24  {
25  $this->dir = $dir;
26  }
27 
28  public function has($key)
29  {
30  return file_exists($this->dir.'/'.$key);
31  }
32 
33  public function get($key)
34  {
35  $path = $this->dir.'/'.$key;
36 
37  if (!file_exists($path)) {
38  throw new \RuntimeException('There is no cached value for '.$key);
39  }
40 
41  return file_get_contents($path);
42  }
43 
44  public function set($key, $value)
45  {
46  if (!is_dir($this->dir) && false === @mkdir($this->dir, 0777, true)) {
47  throw new \RuntimeException('Unable to create directory '.$this->dir);
48  }
49 
50  $path = $this->dir.'/'.$key;
51 
52  if (false === @file_put_contents($path, $value)) {
53  throw new \RuntimeException('Unable to write file '.$path);
54  }
55  }
56 
57  public function remove($key)
58  {
59  $path = $this->dir.'/'.$key;
60 
61  if (file_exists($path) && false === @unlink($path)) {
62  throw new \RuntimeException('Unable to remove file '.$path);
63  }
64  }
65 }
$path
Definition: aliased.php:25
A simple filesystem cache.
Interface for a cache backend.
has($key)
Checks if the cache has a value for a key.