ServerClient.php 1022 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. namespace Predis\Commands;
  3. class ServerClient extends Command {
  4. public function getId() {
  5. return 'CLIENT';
  6. }
  7. protected function onPrefixKeys(Array $arguments, $prefix) {
  8. /* NOOP */
  9. }
  10. protected function canBeHashed() {
  11. return false;
  12. }
  13. public function parseResponse($data) {
  14. $args = array_change_key_case($this->getArguments(), CASE_UPPER);
  15. switch (strtoupper($args[0])) {
  16. case 'LIST':
  17. return $this->parseClientList($data);
  18. case 'KILL':
  19. default:
  20. return $data;
  21. }
  22. }
  23. protected function parseClientList($data) {
  24. $clients = array();
  25. foreach (explode("\n", $data, -1) as $clientData) {
  26. $client = array();
  27. foreach (explode(' ', $clientData) as $kv) {
  28. @list($k, $v) = explode('=', $kv);
  29. $client[$k] = $v;
  30. }
  31. $clients[] = $client;
  32. }
  33. return $clients;
  34. }
  35. }