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); } }