Selaa lähdekoodia

Fix for a possible notice message thrown by PHP when there is no query string in the URI used to create a ConnectionParameters instance.

Daniele Alessandri 15 vuotta sitten
vanhempi
commit
bb81971d71
1 muutettua tiedostoa jossa 14 lisäystä ja 11 poistoa
  1. 14 11
      lib/Predis.php

+ 14 - 11
lib/Predis.php

@@ -560,20 +560,23 @@ class ConnectionParameters {
             throw new ClientException("Invalid URI: $uri");
         }
 
-        $details = array();
-        foreach (explode('&', $parsed['query']) as $kv) {
-            list($k, $v) = explode('=', $kv);
-            switch ($k) {
-                case 'database':
-                    $details['database'] = $v;
-                    break;
-                case 'password':
-                    $details['password'] = $v;
-                    break;
+        if (array_key_exists('query', $parsed)) {
+            $details = array();
+            foreach (explode('&', $parsed['query']) as $kv) {
+                list($k, $v) = explode('=', $kv);
+                switch ($k) {
+                    case 'database':
+                        $details['database'] = $v;
+                        break;
+                    case 'password':
+                        $details['password'] = $v;
+                        break;
+                }
             }
+            $parsed = array_merge($parsed, $details);
         }
 
-        return self::filterConnectionParams(array_merge($parsed, $details));
+        return self::filterConnectionParams($parsed);
     }
 
     private static function getParamOrDefault(Array $parameters, $param, $default = null) {