From 90e36c74ec984235de58ff330f9e974c87f34cb8 Mon Sep 17 00:00:00 2001 From: Rico van Zelst Date: Mon, 6 Nov 2023 21:47:51 +0100 Subject: [PATCH] feat: caching --- app/Http/Controllers/HomeController.php | 10 +++- ...{Upcoming_skins.php => upcoming_skins.php} | 4 +- database/seeders/DatabaseSeeder.php | 3 ++ .../components/home/upcoming_skins.blade.php | 50 ++++++++----------- resources/views/home.blade.php | 4 +- 5 files changed, 39 insertions(+), 32 deletions(-) rename app/View/Components/home/{Upcoming_skins.php => upcoming_skins.php} (69%) diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index 8297701..686ae66 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -3,15 +3,23 @@ namespace App\Http\Controllers; use App\Models\ChampionSkin; +use Illuminate\Support\Facades\Cache; class HomeController extends Controller { public function index() { - $skins = ChampionSkin::orderBy('release_date', 'desc')->get(); + $skins = Cache::remember('skins', 60 * 4, function () { + return ChampionSkin::orderBy('release_date', 'desc')->get(); + }); + + $upcomingSkins = Cache::remember('upcomingSkins', 60 * 4, function () use ($skins) { + return $skins->where('availability', 'Upcoming'); + }); return view('home', [ 'skins' => $skins, + 'upcomingSkins' => $upcomingSkins, ]); } } diff --git a/app/View/Components/home/Upcoming_skins.php b/app/View/Components/home/upcoming_skins.php similarity index 69% rename from app/View/Components/home/Upcoming_skins.php rename to app/View/Components/home/upcoming_skins.php index 7b18b1e..28f8827 100644 --- a/app/View/Components/home/Upcoming_skins.php +++ b/app/View/Components/home/upcoming_skins.php @@ -5,9 +5,9 @@ namespace App\View\Components\Home; use Illuminate\Contracts\View\View; use Illuminate\View\Component; -class Upcoming_skins extends Component +class upcoming_skins extends Component { - public function __construct(public array $skins) + public function __construct(public array $upcomingSkins) { } diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index b0d3d9a..f79e6fc 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -5,6 +5,7 @@ namespace Database\Seeders; // use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; use Illuminate\Support\Facades\Log; +use Illuminate\Support\Facades\Cache; class DatabaseSeeder extends Seeder { @@ -18,6 +19,8 @@ class DatabaseSeeder extends Seeder $this->call(SkinChromaSeeder::class); $this->call(ChampionRolesSeeder::class); + Cache::flush(); + Log::info('Seeding complete at ' . date('Y-m-d H:i:s')); } } diff --git a/resources/views/components/home/upcoming_skins.blade.php b/resources/views/components/home/upcoming_skins.blade.php index 359a71d..fb3cc03 100644 --- a/resources/views/components/home/upcoming_skins.blade.php +++ b/resources/views/components/home/upcoming_skins.blade.php @@ -15,39 +15,33 @@

- @foreach ($skins as $skin) - @if($skin->availability == "Upcoming") -
-
+ @foreach ($upcomingSkins as $skin) +
+
+
+ {{ $skin->skin_name }} Splash Art
- {{ $skin->skin_name }} Splash Art -
-

{{ $skin->skin_name }}

-

- @if ($skin->rp_price == '99999') - Not Available for RP - @else - {{ $skin->rp_price }} RP - @endif - -

-

- @if ($skin->loot_eligible) - Can be obtained from loot - @endif -

-
+

{{ $skin->skin_name }}

+

+ @if ($skin->rp_price == '99999') + Not Available for RP + @else + {{ $skin->rp_price }} RP + @endif +

+

+ @if ($skin->loot_eligible) + Can be obtained from loot + @endif +

- @endif - +
@endforeach -
-
diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php index 97ab7e4..53ab0bb 100644 --- a/resources/views/home.blade.php +++ b/resources/views/home.blade.php @@ -30,7 +30,9 @@ - +@if($upcomingSkins != []) + +@endif