diff --git a/src/Cache/Cache.php b/src/Cache/Cache.php new file mode 100755 index 0000000..d168512 --- /dev/null +++ b/src/Cache/Cache.php @@ -0,0 +1,63 @@ +adapter = $adapter; + } + + public function has($key) + { + return $this->adapter->hasItem($key); + } + + public function get($key, $default = null) + { + $item = $this->adapter->getItem($key); + return $item->isHit() ? $item->get() : $default; + } + + public function set($key, $value, $ttl = null) + { + $item = $this->adapter->getItem($key); + $item->expiresAfter($ttl); + $item->set($value); + + return $this->adapter->save($item); + } + + public function delete($key) + { + return $this->adapter->deleteItem($key); + } + + public function clear() + { + return $this->adapter->clear(); + } + + public function r($key, $callback, $ttl = null) + { + $item = $this->adapter->getItem($key); + + if ($item->isHit()) { + return $item->get(); + } + + $item->expiresAfter($ttl); + $item->set($callback()); + $this->adapter->save($item); + + return $item->get(); + } +}