* @package Mammut\Cache */ class Simple extends \Mammut\StrictObject implements \Mammut\Cache\iCache { protected $datastore = array(); private $hits = 0; public function __construct() { } public function set($key, $value, $ttl) { if ($value instanceof \Closure) $this->datastore[$key] = $value(); else $this->datastore[$key] = $value; } public function get($key, $default = NULL) { if(isset($this->datastore[$key])) { $this->hits++; return $this->datastore[$key]; } if ($default instanceof \Closure) return $default(); return $default; } public function delete($key) { if(isset($this->datastore[$key])) unset($this->datastore[$key]); } public function keyExists($key) { return isset($this->datastore[$key]); } public function clear() { $this->datastore = array(); } public function getHits() { return $this->hits; } }