Эх сурвалжийг харах

Optimize Predis\ClientOptions.

Daniele Alessandri 14 жил өмнө
parent
commit
743feb0634

+ 11 - 14
lib/Predis/ClientOptions.php

@@ -57,7 +57,7 @@ class ClientOptions {
     }
 
     private function initialize($options) {
-        $this->_handlers = $this->getOptions();
+        $this->_handlers = self::getSharedOptions();
         foreach ($options as $option => $value) {
             if (isset($this->_handlers[$option])) {
                 $handler = $this->_handlers[$option];
@@ -66,22 +66,19 @@ class ClientOptions {
         }
     }
 
-    private function getOptions() {
-        return self::getSharedOptions();
+    private function tryInitializeValue($option) {
+        if (isset($this->_handlers[$option])) {
+            $opts = self::getSharedOptions();
+            $value = $opts[$option]->getDefault();
+            $this->_options[$option] = $value;
+            return $value;
+        }
     }
 
     public function __get($option) {
-        if (!isset($this->_options[$option])) {
-            if (!isset($this->_handlers[$option])) {
-                return null;
-            }
-            $handler = $this->_handlers[$option];
-            $this->_options[$option] = $handler->getDefault();
+        if (isset($this->_options[$option])) {
+            return $this->_options[$option];
         }
-        return $this->_options[$option];
-    }
-
-    public function __isset($option) {
-        return isset(self::$_sharedOptions[$option]);
+        return $this->tryInitializeValue($option);
     }
 }