From a50949e554221a8d8bbc669281cec26b80a8e158 Mon Sep 17 00:00:00 2001 From: James Cole Date: Wed, 3 Jun 2015 22:11:50 +0200 Subject: [PATCH] Cache preferences. --- app/Support/Preferences.php | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/app/Support/Preferences.php b/app/Support/Preferences.php index 8ed4b17924..72eaebee6f 100644 --- a/app/Support/Preferences.php +++ b/app/Support/Preferences.php @@ -3,6 +3,7 @@ namespace FireflyIII\Support; use Auth; +use Cache; use FireflyIII\Models\Preference; /** @@ -30,9 +31,17 @@ class Preferences */ public function get($name, $default = null) { - $preference = Preference::where('user_id', Auth::user()->id)->where('name', $name)->first(['id','name','data_encrypted']); + $fullName = 'preference' . Auth::user()->id . $name; + if (Cache::has($fullName)) { + return Cache::get($fullName); + } + + + $preference = Preference::where('user_id', Auth::user()->id)->where('name', $name)->first(['id', 'name', 'data_encrypted']); if ($preference) { + Cache::forever($fullName, $preference); + return $preference; } // no preference found and default is null: @@ -53,7 +62,9 @@ class Preferences */ public function set($name, $value) { - $pref = Preference::where('user_id', Auth::user()->id)->where('name', $name)->first(['id','name','data_encrypted']); + $fullName = 'preference' . Auth::user()->id . $name; + Cache::forget($fullName); + $pref = Preference::where('user_id', Auth::user()->id)->where('name', $name)->first(['id', 'name', 'data_encrypted']); if ($pref) { $pref->data = $value; } else { @@ -65,6 +76,8 @@ class Preferences } $pref->save(); + Cache::forever($fullName, $pref); + return $pref; }