protected $setting;
protected $cache;
+ protected $localCache = [];
protected $cachePrefix = 'setting-';
public function get($key, $default = false)
{
if ($default === false) $default = config('setting-defaults.' . $key, false);
+ if (isset($this->localCache[$key])) return $this->localCache[$key];
+
$value = $this->getValueFromStore($key, $default);
- return $this->formatValue($value, $default);
+ $formatted = $this->formatValue($value, $default);
+ $this->localCache[$key] = $formatted;
+ return $formatted;
}
/**
// Check the cache
$cacheKey = $this->cachePrefix . $key;
- if ($this->cache->has($cacheKey)) {
- return $this->cache->get($cacheKey);
- }
+ $cacheVal = $this->cache->get($cacheKey, null);
+ if ($cacheVal !== null) return $cacheVal;
// Check the database
$settingObject = $this->getSettingObjectByKey($key);
{
$cacheKey = $this->cachePrefix . $key;
$this->cache->forget($cacheKey);
+ if (isset($this->localCache[$key])) {
+ unset($this->localCache[$key]);
+ }
}
/**