Implement caching of query dto

This commit is contained in:
Tim
2025-05-04 16:47:39 +02:00
parent d62d34fb63
commit 59e068fbf7
6 changed files with 90 additions and 8 deletions

View File

@ -0,0 +1,14 @@
<?php
namespace App\Controller\Attribute;
use App\Service\RequestDtoCache;
use Symfony\Component\HttpKernel\Attribute\MapQueryString;
#[\Attribute(\Attribute::TARGET_PARAMETER)]
class MapQueryCached extends MapQueryString
{
public function __construct() {
return parent::__construct(resolver: RequestDtoCache::class);
}
}

View File

@ -2,6 +2,7 @@
namespace App\Controller;
use App\Controller\Attribute\MapQueryCached;
use App\Dto\SnipFilterRequest;
use App\Entity\Snip;
use App\Form\ConfirmationType;
@ -14,7 +15,6 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Attribute\MapQueryString;
use Symfony\Component\Routing\Attribute\Route;
#[Route('/snip', name: 'snip')]
@ -26,7 +26,7 @@ class SnipController extends AbstractController
) {}
#[Route('/', name: '_index')]
public function index(#[MapQueryString] SnipFilterRequest $request): Response
public function index(#[MapQueryCached] SnipFilterRequest $request): Response
{
return $this->render('snip/index.html.twig', [
'snips' => $this->repository->findByRequest($this->getUser(), $request),

View File

@ -17,10 +17,8 @@ use Symfony\Component\Uid\Uuid;
class UserController extends AbstractController
{
public function __construct(
private EntityManagerInterface $em,
)
{
}
private readonly EntityManagerInterface $em,
) {}
#[Route('/profile', name: '_profile')]
public function profile(
@ -45,7 +43,8 @@ class UserController extends AbstractController
$user,
$form->get('plainPassword')->getData()
)
);
)
;
}
}
$this->addFlash('success', 'Profile updated successfully');