X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCore%2FConfig%2FConfiguration.php;h=c54fbb27e76a12466621bc7bd2155be1ba80c276;hb=cbe435bb708ccf17a4b5bea1e20c3258c9524700;hp=532ed982a9d46498d3de738e741f58db33b26cbc;hpb=1a0398a5b3245508458a38d2acdad6ebf478e116;p=friendica.git diff --git a/src/Core/Config/Configuration.php b/src/Core/Config/Configuration.php index 532ed982a9..c54fbb27e7 100644 --- a/src/Core/Config/Configuration.php +++ b/src/Core/Config/Configuration.php @@ -2,40 +2,40 @@ namespace Friendica\Core\Config; +use Friendica\Model; + /** * This class is responsible for all system-wide configuration values in Friendica * There are two types of storage - * - The Config-Files (loaded into the FileCache @see Cache\IConfigCache ) - * - The Config-DB-Table (per Config-DB-adapter @see Adapter\IConfigAdapter ) + * - The Config-Files (loaded into the FileCache @see Cache\ConfigCache) + * - The Config-DB-Table (per Config-DB-model @see Model\Config\Config) */ -class Configuration +abstract class Configuration { /** - * @var Cache\IConfigCache + * @var Cache\ConfigCache */ - private $configCache; + protected $configCache; /** - * @var Adapter\IConfigAdapter + * @var Model\Config\Config */ - private $configAdapter; + protected $configModel; /** - * @param Cache\IConfigCache $configCache The configuration cache (based on the config-files) - * @param Adapter\IConfigAdapter $configAdapter The configuration DB-backend + * @param Cache\ConfigCache $configCache The configuration cache (based on the config-files) + * @param Model\Config\Config $configModel The configuration model */ - public function __construct(Cache\IConfigCache $configCache, Adapter\IConfigAdapter $configAdapter) + public function __construct(Cache\ConfigCache $configCache, Model\Config\Config $configModel) { $this->configCache = $configCache; - $this->configAdapter = $configAdapter; - - $this->load(); + $this->configModel = $configModel; } /** * Returns the Config Cache * - * @return Cache\IConfigCache + * @return Cache\ConfigCache */ public function getCache() { @@ -45,22 +45,13 @@ class Configuration /** * @brief Loads all configuration values of family into a cached storage. * - * All configuration values of the system are stored in the cache ( @see IConfigCache ) + * All configuration values of the system are stored in the cache ( @see ConfigCache ) * * @param string $cat The category of the configuration value * * @return void */ - public function load($cat = 'config') - { - // If not connected, do nothing - if (!$this->configAdapter->isConnected()) { - return; - } - - // load the whole category out of the DB into the cache - $this->configCache->load($this->configAdapter->load($cat), true); - } + abstract public function load(string $cat = 'config'); /** * @brief Get a particular user's config variable given the category name @@ -68,7 +59,7 @@ class Configuration * * Get a particular config value from the given category ($cat) * and the $key from a cached storage either from the $this->configAdapter - * (@see IConfigAdapter ) or from the $this->configCache (@see IConfigCache ). + * (@see IConfigAdapter) or from the $this->configCache (@see ConfigCache). * * @param string $cat The category of the configuration value * @param string $key The configuration key to query @@ -77,26 +68,7 @@ class Configuration * * @return mixed Stored value or null if it does not exist */ - public function get($cat, $key, $default_value = null, $refresh = false) - { - // 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 (isset($dbvalue)) { - $this->configCache->set($cat, $key, $dbvalue); - return $dbvalue; - } - } - - // use the config cache for return - $result = $this->configCache->get($cat, $key); - - return (isset($result)) ? $result : $default_value; - } + abstract public function get(string $cat, string $key, $default_value = null, bool $refresh = false); /** * @brief Sets a configuration value for system config @@ -111,42 +83,18 @@ class Configuration * * @return bool Operation success */ - public function set($cat, $key, $value) - { - // set the cache first - $cached = $this->configCache->set($cat, $key, $value); - - // If there is no connected adapter, we're finished - if (!$this->configAdapter->isConnected()) { - return $cached; - } - - $stored = $this->configAdapter->set($cat, $key, $value); - - return $cached && $stored; - } + abstract public function set(string $cat, string $key, $value); /** * @brief Deletes the given key from the system configuration. * * Removes the configured value from the stored cache in $this->configCache - * (@see ConfigCache ) and removes it from the database (@see IConfigAdapter ). + * (@see ConfigCache) and removes it from the database (@see IConfigAdapter). * * @param string $cat The category of the configuration value * @param string $key The configuration key to delete * * @return bool */ - public function delete($cat, $key) - { - $cacheRemoved = $this->configCache->delete($cat, $key); - - if (!$this->configAdapter->isConnected()) { - return $cacheRemoved; - } - - $storeRemoved = $this->configAdapter->delete($cat, $key); - - return $cacheRemoved || $storeRemoved; - } + abstract public function delete(string $cat, string $key); }