]> git.mxchange.org Git - friendica.git/blobdiff - src/Core/Config/PConfiguration.php
Merge pull request #7376 from annando/contact-update
[friendica.git] / src / Core / Config / PConfiguration.php
index d3c848c9db4d33c2d79cf64674b513c545652998..79ed1a61e6d0fe6eaeb429b3ed08e42939d02bb0 100644 (file)
@@ -12,7 +12,7 @@ namespace Friendica\Core\Config;
 class PConfiguration
 {
        /**
-        * @var Cache\IPConfigCache
+        * @var Cache\PConfigCache
         */
        private $configCache;
 
@@ -22,10 +22,10 @@ class PConfiguration
        private $configAdapter;
 
        /**
-        * @param Cache\IPConfigCache     $configCache   The configuration cache
+        * @param Cache\PConfigCache     $configCache   The configuration cache
         * @param Adapter\IPConfigAdapter $configAdapter The configuration DB-backend
         */
-       public function __construct(Cache\IPConfigCache $configCache, Adapter\IPConfigAdapter $configAdapter)
+       public function __construct(Cache\PConfigCache $configCache, Adapter\IPConfigAdapter $configAdapter)
        {
                $this->configCache = $configCache;
                $this->configAdapter = $configAdapter;
@@ -50,7 +50,7 @@ class PConfiguration
                }
 
                // load the whole category out of the DB into the cache
-               $this->configCache->loadP($uid, $this->configAdapter->load($uid, $cat));
+               $this->configCache->load($uid, $this->configAdapter->load($uid, $cat));
        }
 
        /**
@@ -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->set($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->get($uid, $cat, $key);
+               return (isset($result)) ? $result : $default_value;
        }
 
        /**
@@ -110,7 +106,7 @@ class PConfiguration
        public function set($uid, $cat, $key, $value)
        {
                // set the cache first
-               $cached = $this->configCache->setP($uid, $cat, $key, $value);
+               $cached = $this->configCache->set($uid, $cat, $key, $value);
 
                // If there is no connected adapter, we're finished
                if (!$this->configAdapter->isConnected()) {
@@ -137,7 +133,7 @@ class PConfiguration
         */
        public function delete($uid, $cat, $key)
        {
-               $cacheRemoved = $this->configCache->deleteP($uid, $cat, $key);
+               $cacheRemoved = $this->configCache->delete($uid, $cat, $key);
 
                if (!$this->configAdapter->isConnected()) {
                        return $cacheRemoved;