Browse Source

Add the new Predis\IConnectionParameters interface.

Daniele Alessandri 14 years ago
parent
commit
3f720ad867

+ 2 - 1
lib/Predis/ConnectionParameters.php

@@ -2,11 +2,12 @@
 
 namespace Predis;
 
+use Predis\IConnectionParameters;
 use Predis\Options\IOption;
 use Predis\Options\Option;
 use Predis\Options\CustomOption;
 
-class ConnectionParameters {
+class ConnectionParameters implements IConnectionParameters {
     private $_parameters;
     private $_userDefined;
     private static $_sharedOptions;

+ 2 - 2
lib/Predis/ConnectionSchemes.php

@@ -41,7 +41,7 @@ class ConnectionSchemes implements IConnectionSchemes {
     }
 
     public function newConnection($parameters) {
-        if (!$parameters instanceof ConnectionParameters) {
+        if (!$parameters instanceof IConnectionParameters) {
             $parameters = new ConnectionParameters($parameters);
         }
 
@@ -60,7 +60,7 @@ class ConnectionSchemes implements IConnectionSchemes {
     }
 
     public function newConnectionByScheme($scheme, $parameters = array()) {
-        if ($parameters instanceof ConnectionParameters) {
+        if ($parameters instanceof IConnectionParameters) {
             $parameters = $parameters->toArray();
         }
         if (is_array($parameters)) {

+ 9 - 0
lib/Predis/IConnectionParameters.php

@@ -0,0 +1,9 @@
+<?php
+
+namespace Predis;
+
+interface IConnectionParameters {
+    public function __isset($parameter);
+    public function __get($parameter);
+    public function toArray();
+}

+ 3 - 3
lib/Predis/Network/ComposableStreamConnection.php

@@ -2,7 +2,7 @@
 
 namespace Predis\Network;
 
-use Predis\ConnectionParameters;
+use Predis\IConnectionParameters;
 use Predis\CommunicationException;
 use Predis\Commands\ICommand;
 use Predis\Protocols\IProtocolProcessor;
@@ -11,12 +11,12 @@ use Predis\Protocols\TextProtocol;
 class ComposableStreamConnection extends StreamConnection implements IConnectionComposable {
     private $_protocol;
 
-    public function __construct(ConnectionParameters $parameters, IProtocolProcessor $protocol = null) {
+    public function __construct(IConnectionParameters $parameters, IProtocolProcessor $protocol = null) {
         $this->setProtocol($protocol ?: new TextProtocol());
         parent::__construct($parameters);
     }
 
-    protected function initializeProtocol(ConnectionParameters $parameters) {
+    protected function initializeProtocol(IConnectionParameters $parameters) {
         $this->_protocol->setOption('throw_errors', $parameters->throw_errors);
         $this->_protocol->setOption('iterable_multibulk', $parameters->iterable_multibulk);
     }

+ 4 - 4
lib/Predis/Network/ConnectionBase.php

@@ -4,7 +4,7 @@ namespace Predis\Network;
 
 use \InvalidArgumentException;
 use Predis\Utils;
-use Predis\ConnectionParameters;
+use Predis\IConnectionParameters;
 use Predis\ClientException;
 use Predis\CommunicationException;
 use Predis\Commands\ICommand;
@@ -13,7 +13,7 @@ abstract class ConnectionBase implements IConnectionSingle {
     private $_cachedId, $_resource;
     protected $_params, $_initCmds;
 
-    public function __construct(ConnectionParameters $parameters) {
+    public function __construct(IConnectionParameters $parameters) {
         $this->_initCmds = array();
         $this->_params = $this->checkParameters($parameters);
         $this->initializeProtocol($parameters);
@@ -23,7 +23,7 @@ abstract class ConnectionBase implements IConnectionSingle {
         $this->disconnect();
     }
 
-    protected function checkParameters(ConnectionParameters $parameters) {
+    protected function checkParameters(IConnectionParameters $parameters) {
         switch ($parameters->scheme) {
             case 'unix':
                 $pathToSocket = $parameters->path;
@@ -41,7 +41,7 @@ abstract class ConnectionBase implements IConnectionSingle {
         return $parameters;
     }
 
-    protected function initializeProtocol(ConnectionParameters $parameters) {
+    protected function initializeProtocol(IConnectionParameters $parameters) {
         // NOOP
     }
 

+ 2 - 2
lib/Predis/Network/PhpiredisConnection.php

@@ -22,13 +22,13 @@ use Predis\ResponseError;
 use Predis\ResponseQueued;
 use Predis\ClientException;
 use Predis\ServerException;
-use Predis\ConnectionParameters;
+use Predis\IConnectionParameters;
 use Predis\Commands\ICommand;
 
 class PhpiredisConnection extends ConnectionBase {
     private $_reader;
 
-    public function __construct(ConnectionParameters $parameters) {
+    public function __construct(IConnectionParameters $parameters) {
         if (!function_exists('socket_create')) {
             throw new ClientException(
                 'The socket extension must be loaded in order to be able to ' .

+ 4 - 4
lib/Predis/Network/StreamConnection.php

@@ -5,7 +5,7 @@ namespace Predis\Network;
 use Predis\ResponseError;
 use Predis\ResponseQueued;
 use Predis\ServerException;
-use Predis\ConnectionParameters;
+use Predis\IConnectionParameters;
 use Predis\CommunicationException;
 use Predis\Commands\ICommand;
 use Predis\Protocols\TextCommandSerializer;
@@ -20,7 +20,7 @@ class StreamConnection extends ConnectionBase {
         }
     }
 
-    protected function initializeProtocol(ConnectionParameters $parameters) {
+    protected function initializeProtocol(IConnectionParameters $parameters) {
         $this->_throwErrors = $parameters->throw_errors;
         $this->_mbiterable = $parameters->iterable_multibulk;
     }
@@ -31,7 +31,7 @@ class StreamConnection extends ConnectionBase {
         return call_user_func($initializer, $parameters);
     }
 
-    private function tcpStreamInitializer(ConnectionParameters $parameters) {
+    private function tcpStreamInitializer(IConnectionParameters $parameters) {
         $uri = sprintf('tcp://%s:%d/', $parameters->host, $parameters->port);
         $flags = STREAM_CLIENT_CONNECT;
         if ($parameters->connection_async) {
@@ -56,7 +56,7 @@ class StreamConnection extends ConnectionBase {
         return $resource;
     }
 
-    private function unixStreamInitializer(ConnectionParameters $parameters) {
+    private function unixStreamInitializer(IConnectionParameters $parameters) {
         $uri = sprintf('unix:///%s', $parameters->path);
         $flags = STREAM_CLIENT_CONNECT;
         if ($parameters->connection_persistent) {