The cache system in getSettings() cached values "forever." That's bad.

This commit is contained in:
Brady Wetherington 2023-01-09 16:16:09 -08:00
parent 8d35583634
commit 2d0ac5b48b

View file

@ -21,11 +21,10 @@ class Setting extends Model
use Notifiable, ValidatingTrait;
/**
* The app settings cache key name.
*
* @var string
* The cache property so that multiple invocations of this will only load the Settings record from disk only once
* @var self
*/
const APP_SETTINGS_KEY = 'snipeit_app_settings';
public static ?self $_cache = null;
/**
* The setup check cache key name.
@ -98,14 +97,15 @@ class Setting extends Model
*/
public static function getSettings(): ?self
{
return Cache::rememberForever(self::APP_SETTINGS_KEY, function () {
if (!self::$_cache) {
// Need for setup as no tables exist
try {
return self::first();
self::$_cache = self::first();
} catch (\Throwable $th) {
return null;
}
});
}
return self::$_cache;
}
/**