Jelajahi Sumber

Add the ability to create new connections using uri strings, array of parameters or instances of Predis\ConnectionParameters.

Daniele Alessandri 14 tahun lalu
induk
melakukan
5077996940
1 mengubah file dengan 10 tambahan dan 3 penghapusan
  1. 10 3
      lib/Predis/Client.php

+ 10 - 3
lib/Predis/Client.php

@@ -66,7 +66,7 @@ class Client {
         }
 
         $options = $this->_options;
-        $connection = self::newConnection($parameters);
+        $connection = self::newConnectionInternal($parameters);
         $connection->setProtocolOption('iterable_multibulk', $options->iterable_multibulk);
         $connection->setProtocolOption('throw_errors', $options->throw_errors);
         $this->pushInitCommands($connection);
@@ -234,7 +234,7 @@ class Client {
         }
     }
 
-    public static function registerScheme($scheme, $connectionClass) {
+    public static function defineConnection($scheme, $connectionClass) {
         self::ensureDefaultSchemes();
         $connectionReflection = new \ReflectionClass($connectionClass);
         if (!$connectionReflection->isSubclassOf('\Predis\Network\IConnectionSingle')) {
@@ -253,11 +253,18 @@ class Client {
         return self::$_connectionSchemes[$scheme];
     }
 
-    private static function newConnection(ConnectionParameters $parameters) {
+    private static function newConnectionInternal(ConnectionParameters $parameters) {
         $connection = self::getConnectionClass($parameters->scheme);
         return new $connection($parameters);
     }
 
+    public static function newConnection($parameters) {
+        if (!$parameters instanceof ConnectionParameters) {
+            $parameters = new ConnectionParameters($parameters);
+        }
+        return self::newConnectionInternal($parameters);
+    }
+
     public static function newConnectionByScheme($scheme, $parameters = array()) {
         $connection = self::getConnectionClass($scheme);
         if (!$parameters instanceof ConnectionParameters) {