X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FConfig%2FPConfiguration.php;h=79ed1a61e6d0fe6eaeb429b3ed08e42939d02bb0;hb=7ce48d1b77e9a691b1f77ec01690175f6b27bda9;hp=d3c848c9db4d33c2d79cf64674b513c545652998;hpb=eafcf3592db02392770cdc88bed9ddb000cb44f2;p=friendica.git diff --git a/src/Core/Config/PConfiguration.php b/src/Core/Config/PConfiguration.php index d3c848c9db..79ed1a61e6 100644 --- a/src/Core/Config/PConfiguration.php +++ b/src/Core/Config/PConfiguration.php @@ -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 !== '!!') { - $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;