X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FConfig%2FPreloadPConfigAdapter.php;h=af97815adef38d159ab6ba44f27766d10ed7ca9d;hb=01b7a3976ff1a00700c429db43fcbdec7158abca;hp=ebccb018bce6a85eb0776fd525cff8bdadbb68f6;hpb=306688057d64a156969eff79fff546c82d8e616a;p=friendica.git diff --git a/src/Core/Config/PreloadPConfigAdapter.php b/src/Core/Config/PreloadPConfigAdapter.php index ebccb018bc..af97815ade 100644 --- a/src/Core/Config/PreloadPConfigAdapter.php +++ b/src/Core/Config/PreloadPConfigAdapter.php @@ -3,11 +3,8 @@ namespace Friendica\Core\Config; use Exception; -use Friendica\BaseObject; use Friendica\Database\DBA; -require_once 'include/dba.php'; - /** * Preload User Configuration Adapter * @@ -15,15 +12,31 @@ require_once 'include/dba.php'; * * @author Hypolite Petovan */ -class PreloadPConfigAdapter extends BaseObject implements IPConfigAdapter +class PreloadPConfigAdapter implements IPConfigAdapter { private $config_loaded = false; - public function __construct($uid) + /** + * The config cache of this adapter + * @var IPConfigCache + */ + private $configCache; + + /** + * @param IPConfigCache $configCache The config cache of this adapter + * @param int $uid The UID of the current user + */ + public function __construct(IPConfigCache $configCache, $uid = null) { - $this->load($uid, 'config'); + $this->configCache = $configCache; + if (isset($uid)) { + $this->load($uid, 'config'); + } } + /** + * {@inheritdoc} + */ public function load($uid, $family) { if ($this->config_loaded) { @@ -36,13 +49,16 @@ class PreloadPConfigAdapter extends BaseObject implements IPConfigAdapter $pconfigs = DBA::select('pconfig', ['cat', 'v', 'k'], ['uid' => $uid]); while ($pconfig = DBA::fetch($pconfigs)) { - self::getApp()->setPConfigValue($uid, $pconfig['cat'], $pconfig['k'], $pconfig['v']); + $this->configCache->setP($uid, $pconfig['cat'], $pconfig['k'], $pconfig['v']); } DBA::close($pconfigs); $this->config_loaded = true; } + /** + * {@inheritdoc} + */ public function get($uid, $cat, $k, $default_value = null, $refresh = false) { if (!$this->config_loaded) { @@ -52,17 +68,18 @@ class PreloadPConfigAdapter extends BaseObject implements IPConfigAdapter if ($refresh) { $config = DBA::selectFirst('pconfig', ['v'], ['uid' => $uid, 'cat' => $cat, 'k' => $k]); if (DBA::isResult($config)) { - self::getApp()->setPConfigValue($uid, $cat, $k, $config['v']); + $this->configCache->setP($uid, $cat, $k, $config['v']); } else { - self::getApp()->deletePConfigValue($uid, $cat, $k); + $this->configCache->deleteP($uid, $cat, $k); } } - $return = self::getApp()->getPConfigValue($uid, $cat, $k, $default_value); - - return $return; + return $this->configCache->getP($uid, $cat, $k, $default_value);; } + /** + * {@inheritdoc} + */ public function set($uid, $cat, $k, $value) { if (!$this->config_loaded) { @@ -73,11 +90,11 @@ class PreloadPConfigAdapter extends BaseObject implements IPConfigAdapter // The exception are array values. $compare_value = !is_array($value) ? (string)$value : $value; - if (self::getApp()->getPConfigValue($uid, $cat, $k) === $compare_value) { + if ($this->configCache->getP($uid, $cat, $k) === $compare_value) { return true; } - self::getApp()->setPConfigValue($uid, $cat, $k, $value); + $this->configCache->setP($uid, $cat, $k, $value); // manage array value $dbvalue = is_array($value) ? serialize($value) : $value; @@ -90,13 +107,16 @@ class PreloadPConfigAdapter extends BaseObject implements IPConfigAdapter return true; } + /** + * {@inheritdoc} + */ public function delete($uid, $cat, $k) { if (!$this->config_loaded) { $this->load($uid, $cat); } - self::getApp()->deletePConfigValue($uid, $cat, $k); + $this->configCache->deleteP($uid, $cat, $k); $result = DBA::delete('pconfig', ['uid' => $uid, 'cat' => $cat, 'k' => $k]);