瀏覽代碼

Create a new class to handle the old response type of KEYS (Redis v1.2).

Daniele Alessandri 14 年之前
父節點
當前提交
51352bcbb3
共有 1 個文件被更改,包括 9 次插入7 次删除
  1. 9 7
      lib/Predis.php

+ 9 - 7
lib/Predis.php

@@ -1706,7 +1706,7 @@ class RedisServer_v1_2 extends RedisServerProfile {
             'type'                      => '\Predis\Commands\Type',
 
             /* commands operating on the key space */
-            'keys'                      => '\Predis\Commands\Keys',
+            'keys'                      => '\Predis\Commands\Keys_v1_2',
             'randomkey'                 => '\Predis\Commands\RandomKey',
             'rename'                    => '\Predis\Commands\Rename',
             'renamenx'                  => '\Predis\Commands\RenamePreserve',
@@ -1792,6 +1792,9 @@ class RedisServer_v2_0 extends RedisServer_v1_2 {
             'append'                    => '\Predis\Commands\Append',
             'substr'                    => '\Predis\Commands\Substr',
 
+            /* commands operating on the key space */
+            'keys'                      => '\Predis\Commands\Keys',
+
             /* commands operating on lists */
             'blpop'                     => '\Predis\Commands\ListPopFirstBlocking',
             'brpop'                     => '\Predis\Commands\ListPopLastBlocking',
@@ -2425,12 +2428,11 @@ class Strlen extends Command {
 class Keys extends Command {
     public function canBeHashed()  { return false; }
     public function getCommandId() { return 'KEYS'; }
-    public function parseResponse($data) { 
-        // TODO: is this behaviour correct?
-        if (is_array($data) || $data instanceof \Iterator) {
-            return $data;
-        }
-        return strlen($data) > 0 ? explode(' ', $data) : array();
+}
+
+class Keys_v1_2 extends Keys {
+    public function parseResponse($data) {
+        return explode(' ', $data);
     }
 }