First commit
This commit is contained in:
75
vendor/league/flysystem-cached-adapter/src/Storage/Predis.php
vendored
Executable file
75
vendor/league/flysystem-cached-adapter/src/Storage/Predis.php
vendored
Executable file
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
|
||||
namespace League\Flysystem\Cached\Storage;
|
||||
|
||||
use Predis\Client;
|
||||
|
||||
class Predis extends AbstractCache
|
||||
{
|
||||
/**
|
||||
* @var \Predis\Client Predis Client
|
||||
*/
|
||||
protected $client;
|
||||
|
||||
/**
|
||||
* @var string storage key
|
||||
*/
|
||||
protected $key;
|
||||
|
||||
/**
|
||||
* @var int|null seconds until cache expiration
|
||||
*/
|
||||
protected $expire;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param \Predis\Client $client predis client
|
||||
* @param string $key storage key
|
||||
* @param int|null $expire seconds until cache expiration
|
||||
*/
|
||||
public function __construct(Client $client = null, $key = 'flysystem', $expire = null)
|
||||
{
|
||||
$this->client = $client ?: new Client();
|
||||
$this->key = $key;
|
||||
$this->expire = $expire;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function load()
|
||||
{
|
||||
if (($contents = $this->executeCommand('get', [$this->key])) !== null) {
|
||||
$this->setFromStorage($contents);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function save()
|
||||
{
|
||||
$contents = $this->getForStorage();
|
||||
$this->executeCommand('set', [$this->key, $contents]);
|
||||
|
||||
if ($this->expire !== null) {
|
||||
$this->executeCommand('expire', [$this->key, $this->expire]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute a Predis command.
|
||||
*
|
||||
* @param string $name
|
||||
* @param array $arguments
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function executeCommand($name, array $arguments)
|
||||
{
|
||||
$command = $this->client->createCommand($name, $arguments);
|
||||
|
||||
return $this->client->executeCommand($command);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user