tstart = microtime(true); parent::connect(); } private function storeDebug(CommandInterface $command, $direction) { $firstArg = $command->getArgument(0); $timestamp = round(microtime(true) - $this->tstart, 4); $debug = $command->getId(); $debug .= isset($firstArg) ? " $firstArg " : ' '; $debug .= "$direction $this"; $debug .= " [{$timestamp}s]"; $this->debugBuffer[] = $debug; } public function writeRequest(CommandInterface $command) { parent::writeRequest($command); $this->storeDebug($command, '->'); } public function readResponse(CommandInterface $command) { $response = parent::readResponse($command); $this->storeDebug($command, '<-'); return $response; } public function getDebugBuffer() { return $this->debugBuffer; } } $options = [ 'connections' => [ 'tcp' => 'SimpleDebuggableConnection', ], ]; $client = new Predis\Client($single_server, $options); $client->set('foo', 'bar'); $client->get('foo'); $client->info(); var_export($client->getConnection()->getDebugBuffer()); /* OUTPUT: array ( 0 => 'SELECT 15 -> 127.0.0.1:6379 [0.0008s]', 1 => 'SELECT 15 <- 127.0.0.1:6379 [0.001s]', 2 => 'SET foo -> 127.0.0.1:6379 [0.001s]', 3 => 'SET foo <- 127.0.0.1:6379 [0.0011s]', 4 => 'GET foo -> 127.0.0.1:6379 [0.0013s]', 5 => 'GET foo <- 127.0.0.1:6379 [0.0015s]', 6 => 'INFO -> 127.0.0.1:6379 [0.0019s]', 7 => 'INFO <- 127.0.0.1:6379 [0.0022s]', ) */