# ══════════════════════════════════════════════════════════════════
# Framework Symfony — framework.yaml
# ══════════════════════════════════════════════════════════════════
# Configuration du composant FrameworkBundle.
# Réf : https://symfony.com/doc/current/reference/configuration/framework.html
#
# Session :
#   - cookie_secure: auto   → HTTPS uniquement si disponible
#   - cookie_httponly: true → inaccessible en JavaScript (XSS)
#   - cookie_samesite: lax  → protection CSRF de base
#   - gc_maxlifetime: 3600  → expiration session après 1h d'inactivité
# ══════════════════════════════════════════════════════════════════
# see https://symfony.com/doc/current/reference/configuration/framework.html
framework:
    # Clé secrète utilisée pour les tokens CSRF, cookies signés, remember-me…
    # Définie via la variable d'environnement APP_SECRET dans .env / .env.local
    secret: '%env(APP_SECRET)%'

    # Note that the session will be started ONLY if you read or write from it.
    session:
        cookie_secure: auto     # HTTPS uniquement si le serveur est en HTTPS
        cookie_httponly: true   # Protège contre le vol de session via XSS
        cookie_samesite: lax    # Atténue les attaques CSRF inter-domaines
        gc_maxlifetime: 3600    # Session invalide après 1h d'inactivité (secondes)

    #esi: true
    #fragments: true

# ── Environnement de test ──────────────────────────────────────────
when@test:
    framework:
        test: true
        session:
            storage_factory_id: session.storage.factory.mock_file   # Session en fichier temporaire
