for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Kevinrob\GuzzleCache\Storage;
use Illuminate\Contracts\Cache\Repository as Cache;
use Kevinrob\GuzzleCache\CacheEntry;
class LaravelCacheStorage implements CacheStorageInterface
{
/**
* @var Cache
*/
protected $cache;
* @param Cache $cache
public function __construct(Cache $cache)
$this->cache = $cache;
}
* {@inheritdoc}
public function fetch($key)
try {
$cache = unserialize($this->cache->get($key));
if ($cache instanceof CacheEntry) {
return $cache;
} catch (\Exception $ignored) {
return;
public function save($key, CacheEntry $data)
// getTTL returns seconds, Laravel needs minutes
$lifeTime = $data->getTTL() / 60;
if ($lifeTime === 0) {
return $this->cache->forever(
$key,
serialize($data)
);
} else if ($lifeTime > 0) {
return $this->cache->add(
serialize($data),
$lifeTime
// No fail if we can't save it the storage
return false;
public function delete($key)
return $this->cache->forget($key);