]> git.mxchange.org Git - friendica.git/blobdiff - src/Core/Config/PConfiguration.php
Merge pull request #6725 from nupplaphil/6691-rendertime-fix
[friendica.git] / src / Core / Config / PConfiguration.php
index d3c848c9db4d33c2d79cf64674b513c545652998..0d3b0c178c6cb24c02a53c8ec54454e3a096e220 100644 (file)
@@ -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 !== '!<unset>!') {
-                       $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;
        }
 
        /**