executeCommand() публичный Метод

Writes a request for the given command over the connection and reads back the response returned by Redis.
public executeCommand ( Predis\Command\CommandInterface $command ) : mixed
$command Predis\Command\CommandInterface Command instance.
Результат mixed
Пример #1
0
 /**
  * {@inheritdoc}
  */
 public function executeCommand(CommandInterface $command)
 {
     $response = $this->connection->executeCommand($command);
     if ($response instanceof ResponseInterface) {
         if ($response instanceof ErrorResponseInterface) {
             $response = $this->onErrorResponse($command, $response);
         }
         return $response;
     }
     return $command->parseResponse($response);
 }
Пример #2
0
 /**
  * {@inheritdoc}
  */
 protected function executePipeline(ConnectionInterface $connection, \SplQueue $commands)
 {
     $profile = $this->getClient()->getProfile();
     $connection->executeCommand($profile->createCommand('multi'));
     foreach ($commands as $command) {
         $connection->writeRequest($command);
     }
     foreach ($commands as $command) {
         $response = $connection->readResponse($command);
         if ($response instanceof ErrorResponseInterface) {
             $connection->executeCommand($profile->createCommand('discard'));
             throw new ServerException($response->getMessage());
         }
     }
     $executed = $connection->executeCommand($profile->createCommand('exec'));
     if (!isset($executed)) {
         // TODO: should be throwing a more appropriate exception.
         throw new ClientException('The underlying transaction has been aborted by the server.');
     }
     if (count($executed) !== count($commands)) {
         $expected = count($commands);
         $received = count($executed);
         throw new ClientException("Invalid number of responses [expected {$expected}, received {$received}].");
     }
     $responses = array();
     $sizeOfPipe = count($commands);
     $exceptions = $this->throwServerExceptions();
     for ($i = 0; $i < $sizeOfPipe; ++$i) {
         $command = $commands->dequeue();
         $response = $executed[$i];
         if (!$response instanceof ResponseInterface) {
             $responses[] = $command->parseResponse($response);
         } elseif ($response instanceof ErrorResponseInterface && $exceptions) {
             $this->exception($connection, $response);
         } else {
             $responses[] = $response;
         }
         unset($executed[$i]);
     }
     return $responses;
 }