Enable Doctrine L2 cache and add Redis cache pools

Doctrine Second Level Cache (NONSTRICT_READ_WRITE) on:
- Event, User, Category, Billet, BilletDesign
- Default region: 1h TTL, short_lived region: 5min TTL

Redis cache pools added:
- app.cache.events (30min) — for event listings
- app.cache.homepage (5min) — for homepage data
- doctrine.result_cache_pool — DQL result cache via Redis
- doctrine.system_cache_pool — metadata/query cache

All pools backed by Redis DB 2. Reduces DB queries significantly
for read-heavy pages (event listings, user profiles, categories).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Serreau Jovann
2026-03-26 12:50:13 +01:00
parent a0cb564c00
commit 83583e0d3d
7 changed files with 20 additions and 8 deletions

View File

@@ -12,6 +12,16 @@ framework:
stats.cache:
adapter: cache.app
default_lifetime: 600
app.cache.events:
adapter: cache.app
default_lifetime: 1800
app.cache.homepage:
adapter: cache.app
default_lifetime: 300
doctrine.result_cache_pool:
adapter: cache.app
doctrine.system_cache_pool:
adapter: cache.system
when@test:
framework:

View File

@@ -47,11 +47,8 @@ when@prod:
cache_driver:
type: pool
pool: doctrine.result_cache_pool
framework:
cache:
pools:
doctrine.result_cache_pool:
adapter: cache.app
doctrine.system_cache_pool:
adapter: cache.system
short_lived:
lifetime: 300
cache_driver:
type: pool
pool: doctrine.result_cache_pool

View File

@@ -8,6 +8,7 @@ use Symfony\Component\HttpFoundation\File\File;
use Vich\UploaderBundle\Mapping\Attribute as Vich;
#[ORM\Entity(repositoryClass: BilletRepository::class)]
#[ORM\Cache(usage: 'NONSTRICT_READ_WRITE')]
#[Vich\Uploadable]
class Billet
{

View File

@@ -6,6 +6,7 @@ use App\Repository\BilletDesignRepository;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: BilletDesignRepository::class)]
#[ORM\Cache(usage: 'NONSTRICT_READ_WRITE')]
class BilletDesign
{
#[ORM\Id]

View File

@@ -6,6 +6,7 @@ use App\Repository\CategoryRepository;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: CategoryRepository::class)]
#[ORM\Cache(usage: 'NONSTRICT_READ_WRITE')]
class Category
{
#[ORM\Id]

View File

@@ -8,6 +8,7 @@ use Symfony\Component\HttpFoundation\File\File;
use Vich\UploaderBundle\Mapping\Attribute as Vich;
#[ORM\Entity(repositoryClass: EventRepository::class)]
#[ORM\Cache(usage: 'NONSTRICT_READ_WRITE')]
#[Vich\Uploadable]
class Event
{

View File

@@ -13,6 +13,7 @@ use Vich\UploaderBundle\Mapping\Attribute as Vich;
#[ORM\Entity(repositoryClass: UserRepository::class)]
#[ORM\Table(name: '`user`')]
#[ORM\Cache(usage: 'NONSTRICT_READ_WRITE')]
#[UniqueEntity(fields: ['email'], message: 'Un compte existe déjà avec cet email.')]
#[Vich\Uploadable]
class User implements UserInterface, PasswordAuthenticatedUserInterface