Upgrade symfony from 7 to 8. Remove cache since it is now faster to open website.

This commit was merged in pull request #62.
This commit is contained in:
2026-02-07 09:27:19 +01:00
parent 1303b4ad8a
commit 7e2658b174
17 changed files with 310 additions and 485 deletions

View File

@@ -11,7 +11,7 @@ class BaseController extends AbstractController
{
protected Environment $twig;
public function __construct(protected FilesystemAdapter $cache, protected Capsule $database)
public function __construct( protected Capsule $database)
{
}
}

View File

@@ -11,9 +11,6 @@ final class CategoryController extends BaseController
#[Route('/category/{category?}', name: 'app_category')]
public function __invoke(?string $category): Response
{
if($this->cache->getItem('list_category_'.$category)->isHit()) {
return $this->render('productList.html.twig', ['listType' => 'category_'.$category]);
}
/** @var Product[] $products */
$products = Product::with(['price', 'lowestPrice'])

View File

@@ -13,9 +13,6 @@ final class DiscontinuedController extends BaseController
#[Route('/discontinued', name: 'app_discontinued')]
public function __invoke(): Response
{
if($this->cache->getItem('list_discontinued')->isHit()) {
return $this->render('productList.html.twig', ['listType' => 'discontinued']);
}
$products = Product::where('lastSeen', '<', now()->format('Y-m-d'))
->orderByDesc('starred')

View File

@@ -11,9 +11,6 @@ final class IndexController extends BaseController
#[Route('/', name: 'app_home')]
public function __invoke(): Response
{
if ($this->cache->getItem('list_all')->isHit()) {
return $this->render('productList.html.twig', ['listType' => 'all']);
}
$products = Product::orderByDesc('starred')
->orderByDesc('created_by')
->get();

View File

@@ -13,9 +13,6 @@ final class LowestPriceController extends BaseController
public function __invoke(): Response
{
$listType = 'lowest_price';
if($this->cache->getItem('lowest_price')->isHit()) {
return $this->render('productList.html.twig', ['listType' => $listType]);
}
$products = Product::whereRaw('priceCurrent = priceLowest')
->whereRaw('lastSeen = "'.now()->format('Y-m-d').'"')

View File

@@ -13,9 +13,6 @@ final class NewController extends BaseController
#[Route('/new', name: 'app_new')]
public function __invoke(): Response
{
if($this->cache->getItem('list_new')->isHit()) {
return $this->render('productList.html.twig', ['listType' => 'new']);
}
$date = now()->modify('-30 days')->format('Y-m-d');
$products = Product::where('created_at', '>', $date)
->with(['country', 'stock'])

View File

@@ -19,10 +19,6 @@ final class ProductController extends BaseController
#[Route('/product/{productId<\d+>}', name: 'app_product')]
public function __invoke(int $productId): Response
{
if ($this->cache->getItem('product' . $productId)->isHit()) {
return $this->render('product.html.twig', ['product' => ['id' => $productId]]);
}
$product = Product::with([
'price' => fn($query) => $query->orderBy('created_at', 'desc'),
'stock' => fn($query) => $query->orderBy('created_at', 'desc'),

View File

@@ -11,10 +11,6 @@ final class PromosController extends BaseController
#[Route('/promos/{promo?}', name: 'app_promos')]
public function __invoke(?string $promo): Response
{
if ($this->cache->getItem('list_promos')->isHit()) {
return $this->render('productList.html.twig', ['listType' => 'promos' . $promo]);
}
$products = Product::when(is_null($promo), fn($q) => $q->whereRaw('priceCurrent < productStandardPrice'))
->orderByDesc('starred')
->orderByDesc('created_by')

View File

@@ -12,15 +12,12 @@ final class StarController extends BaseController
#[Route('/star/{productId<\d+>}', name: 'app_star')]
public function __invoke(int $productId, Request $request): Response
{
$this->cache->deleteItems(['list_all', 'list_promos', 'list_new', 'list_discontinued']);
$referer = $request->headers->get('referer');
if (str_contains($referer, '/category/')) {
preg_match('#/category/(.*)#i', $referer, $matches);
$this->cache->deleteItem('list_category_'.urldecode($matches[1]));
}
if (str_contains($referer, '/search?search=')) {
preg_match('#/search\?search=(.*)#i', $referer, $matches);
$this->cache->deleteItem('list_search_'.urldecode($matches[1]));
}
Product::find($productId)->toggleStarred()->save();