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