*/
class Configuration
{
+ /**
+ * The blacklist of configuration settings, which should not get saved to the backend
+ * @var array
+ */
+ private $configSaveBlacklist = [
+ 'config' => [
+ 'hostname' => true,
+ ]
+ ];
+
/**
* @var Cache\IConfigCache
*/
if ($this->configAdapter->isConnected() &&
(!$this->configAdapter->isLoaded($cat, $key) ||
$refresh)) {
+
$dbvalue = $this->configAdapter->get($cat, $key);
- if ($dbvalue !== '!<unset>!') {
+ if (isset($dbvalue)) {
$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;
- }
+ $result = $this->configCache->get($cat, $key);
+
+ return (isset($result)) ? $result : $default_value;
}
/**
$cached = $this->configCache->set($cat, $key, $value);
// If there is no connected adapter, we're finished
- if (!$this->configAdapter->isConnected()) {
+ if (!$this->configAdapter->isConnected() || !empty($this->configSaveBlacklist[$cat][$key])) {
return $cached;
}