Optimize Predis\ClientOptions.

This commit is contained in:
Daniele Alessandri
2011-03-18 21:38:37 +01:00
parent afd78b49a6
commit 743feb0634
+11 -14
View File
@@ -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);
}
}