Rev 1 | AutorÃa | Comparar con el anterior | Ultima modificación | Ver Log |
<?php
namespace Kevinrob\GuzzleCache\Storage;
use Kevinrob\GuzzleCache\CacheEntry;
use League\Flysystem\Filesystem;
use League\Flysystem\FilesystemAdapter;
use League\Flysystem\FilesystemException;
class FlysystemStorage implements CacheStorageInterface
{
/**
* @var Filesystem
*/
protected $filesystem;
public function __construct(FilesystemAdapter $adapter)
{
$this->filesystem = new Filesystem($adapter);
}
/**
* @inheritdoc
*/
public function fetch($key)
{
if ($this->filesystem->fileExists($key)) {
// The file exist, read it!
$data = @unserialize(
$this->filesystem->read($key)
);
if ($data instanceof CacheEntry) {
return $data;
}
}
return;
}
/**
* @inheritdoc
*/
public function save($key, CacheEntry $data)
{
try {
$this->filesystem->write($key, serialize($data));
return true;
} catch (FilesystemException $e) {
return false;
}
}
/**
* {@inheritdoc}
*/
public function delete($key)
{
try {
$this->filesystem->delete($key);
return true;
} catch (FilesystemException $ex) {
return true;
}
}
}