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