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
12namespace Assetic\Cache;
13
14/**
15 * A simple array cache
16 *
17 * @author Michael Mifsud <xzyfer@gmail.com>
18 */
19class ArrayCache implements CacheInterface
20{
21    private $cache = array();
22
23    /**
24     * @see CacheInterface::has()
25     */
26    public function has($key)
27    {
28        return isset($this->cache[$key]);
29    }
30
31    /**
32     * @see CacheInterface::get()
33     */
34    public function get($key)
35    {
36        if (!$this->has($key)) {
37            throw new \RuntimeException('There is no cached value for '.$key);
38        }
39
40        return $this->cache[$key];
41    }
42
43    /**
44     * @see CacheInterface::set()
45     */
46    public function set($key, $value)
47    {
48        $this->cache[$key] = $value;
49    }
50
51    /**
52     * @see CacheInterface::remove()
53     */
54    public function remove($key)
55    {
56        unset($this->cache[$key]);
57    }
58}
59