]> git.mxchange.org Git - friendica.git/blobdiff - src/Core/Config/Configuration.php
negative set
[friendica.git] / src / Core / Config / Configuration.php
index ccb9abda8a67a5d143eca2309e0b7cd9fa040525..2ac0da0ad1b967b0d580f1f559b2d971f3f055e7 100644 (file)
@@ -79,22 +79,21 @@ class Configuration
         */
        public function get($cat, $key, $default_value = null, $refresh = false)
        {
-               // Return the value of the cache if found and no refresh is forced
-               if (!$refresh && $this->configCache->has($cat, $key)) {
-                       return $this->configCache->get($cat, $key);
+               // if the value isn't loaded or refresh is needed, load it to the cache
+               if ($this->configAdapter->isConnected() &&
+                       (!$this->configAdapter->isLoaded($cat, $key) ||
+                       $refresh)) {
+                       $dbvalue = $this->configAdapter->get($cat, $key);
+
+                       if ($dbvalue !== '!<unset>!') {
+                               $this->configCache->set($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($cat, $key);
-
-               if ($dbvalue !== '!<unset>!') {
-                       $this->configCache->set($cat, $key, $dbvalue);
-                       return $dbvalue;
+               // use the config cache for return
+               if ($this->configCache->has($cat, $key)) {
+                       return $this->configCache->get($cat, $key);
                } else {
                        return $default_value;
                }