From 2c4a9e92a6792c916033592c28ffb19634d14cd6 Mon Sep 17 00:00:00 2001 From: Daniele Alessandri Date: Fri, 4 Mar 2011 15:10:43 +0100 Subject: [PATCH] Add the ability to define custom handlers for client options and connection parameters. --- lib/Predis/ClientOptions.php | 14 ++++++++++---- lib/Predis/ConnectionParameters.php | 10 ++++++++++ 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/lib/Predis/ClientOptions.php b/lib/Predis/ClientOptions.php index 6d71b147..f2f7480b 100644 --- a/lib/Predis/ClientOptions.php +++ b/lib/Predis/ClientOptions.php @@ -30,6 +30,16 @@ class ClientOptions { return self::$_sharedOptions; } + public static function define($option, Options\IOption $handler) { + self::getSharedOptions(); + self::$_sharedOptions[$option] = $handler; + } + + public static function undefine($option) { + self::getSharedOptions(); + unset(self::$_sharedOptions[$option]); + } + private function initialize($options) { $this->_handlers = $this->getOptions(); foreach ($options as $option => $value) { @@ -44,10 +54,6 @@ class ClientOptions { return self::getSharedOptions(); } - protected function defineOption($name, Options\IOption $option) { - $this->_handlers[$name] = $option; - } - public function __get($option) { if (!isset($this->_options[$option])) { $handler = $this->_handlers[$option]; diff --git a/lib/Predis/ConnectionParameters.php b/lib/Predis/ConnectionParameters.php index 00b37142..de27b8b2 100644 --- a/lib/Predis/ConnectionParameters.php +++ b/lib/Predis/ConnectionParameters.php @@ -57,6 +57,16 @@ class ConnectionParameters { return self::$_sharedOptions; } + public static function define($name, Options\IOption $option) { + self::getSharedOptions(); + self::$_sharedOptions[$name] = $option; + } + + public static function undefine($name) { + self::getSharedOptions(); + unset(self::$_sharedOptions[$name]); + } + protected function parseURI($uri) { if (!is_string($uri)) { throw new \InvalidArgumentException('URI must be a string');