X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FConfig%2FPConfiguration.php;h=0d3b0c178c6cb24c02a53c8ec54454e3a096e220;hb=49def0dc27285557e91d7f8cf4c4ff97bac1489c;hp=d3c848c9db4d33c2d79cf64674b513c545652998;hpb=eafcf3592db02392770cdc88bed9ddb000cb44f2;p=friendica.git diff --git a/src/Core/Config/PConfiguration.php b/src/Core/Config/PConfiguration.php index d3c848c9db..0d3b0c178c 100644 --- a/src/Core/Config/PConfiguration.php +++ b/src/Core/Config/PConfiguration.php @@ -71,25 +71,21 @@ class PConfiguration */ public function get($uid, $cat, $key, $default_value = null, $refresh = false) { - // Return the value of the cache if found and no refresh is forced - if (!$refresh && $this->configCache->hasP($uid, $cat, $key)) { - return $this->configCache->getP($uid, $cat, $key); + // if the value isn't loaded or refresh is needed, load it to the cache + if ($this->configAdapter->isConnected() && + (!$this->configAdapter->isLoaded($uid, $cat, $key) || + $refresh)) { + $dbValue = $this->configAdapter->get($uid, $cat, $key); + + if (isset($dbValue)) { + $this->configCache->setP($uid, $cat, $key, $dbValue); + return $dbValue; + } } - // if we don't find the value in the cache and the adapter isn't ready, return the default value - if (!$this->configAdapter->isConnected()) { - return $default_value; - } - - // load DB value to cache - $dbvalue = $this->configAdapter->get($uid, $cat, $key); - - if ($dbvalue !== '!!') { - $this->configCache->setP($uid, $cat, $key, $dbvalue); - return $dbvalue; - } else { - return $default_value; - } + // use the config cache for return + $result = $this->configCache->getP($uid, $cat, $key); + return (isset($result)) ? $result : $default_value; } /**