* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Predis\Command; /** * @link http://redis.io/commands/client-list * @link http://redis.io/commands/client-kill * @link http://redis.io/commands/client-getname * @link http://redis.io/commands/client-setname * * @author Daniele Alessandri */ class ServerClient extends Command { /** * {@inheritdoc} */ public function getId() { return 'CLIENT'; } /** * {@inheritdoc} */ public function parseResponse($data) { $args = array_change_key_case($this->getArguments(), CASE_UPPER); switch (strtoupper($args[0])) { case 'LIST': return $this->parseClientList($data); case 'KILL': case 'GETNAME': case 'SETNAME': default: return $data; } } /** * Parses the response to CLIENT LIST and returns a structured list. * * @param string $data Response buffer. * * @return array */ protected function parseClientList($data) { $clients = array(); foreach (explode("\n", $data, -1) as $clientData) { $client = array(); foreach (explode(' ', $clientData) as $kv) { @list($k, $v) = explode('=', $kv); $client[$k] = $v; } $clients[] = $client; } return $clients; } }