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 }}
-
- @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