Hostinger

Le cycle de vie d’une requête HTTP

Lorsque vous visitez une page web créée avec Symfony, une série d’étapes invisibles se déroulent en arrière-plan qu'il est bon de bien comprendre.

Vue d'ensemble du cycle

Le cycle de vie d’une requête Symfony peut être résumé grâce au schéma ci-dessous.

Cycle de vie symfony

Nous y voyons plusieurs étapes.

Étapes du cycle de vie

Étape 1 — L’utilisateur envoie une requête

Tout commence lorsqu’un utilisateur saisit une URL dans son navigateur, par exemple :

https://localhost:8000/home

Le navigateur (client) envoie alors une requête HTTP vers le serveur.

Étape 2 et 3 — Le serveur reçoit la requête

Le serveur web (Apache, Nginx ou le serveur interne de Symfony) reçoit cette requête et la redirige vers le fichier d’entrée unique :

public/index.php

Ce fichier est le Front Controller : c’est le point de départ de toutes les requêtes Symfony. Il initialise le framework et transmet la requête au noyau de Symfony (Kernel).

Étape 4 - Le Kernel (noyau) prend le relais

Dans Symfony, le Kernel (le noyau de l’application) est la classe centrale qui orchestre toute la logique du framework.

C’est lui qui reçoit la requête, charge la configuration, et déclenche les différents composants (routeur, contrôleurs, événements, etc.).

Voir le contenu dans /public/index.php.

<?php
use App\Kernel;

require_once dirname(__DIR__).'/vendor/autoload_runtime.php';

return function (array $context) {
    return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
};

Ensuite passage de la requête au routeur.

Étape 5 — Le routeur identifie la route

Symfony compare l’URL demandée (c'est à dire /home) à toutes les routes définies (nous verrons comment les définir plus tard).

Lorsqu’il trouve une correspondance, il détermine quel contrôleur doit être appelé.

Étape 6 — Le contrôleur est exécuté

Une fois la route trouvée, Symfony exécute le contrôleur correspondant.

Il récupère les données nécessaires, effectue la logique et prépare les informations pour les envoyer à la vue.

Étape 7 — Génération de la vue

ne fois les données prêtes, le contrôleur les transmet à la vue (un fichier Twig).

Étape 8 — Création de la réponse

La vue générée est encapsulée dans un objet Response, qui contient : - le contenu HTML

  • le code de statut HTTP (200, 404, 500…)
  • les en-têtes (headers)

Étape 9 - Retour au navigateur

Le serveur web renvoie la réponse au navigateur, qui affiche la page à l’utilisateur.

Et voilà !

Si vous ne maîtrisez pas le concept de namespace en PHP, je vous recommande vivement de consulter la prochaine leçon dédiée aux namespaces. Cette leçon est facultative ; si vous êtes déjà familier avec le sujet, vous pouvez passer directement à la suivante : créer notre premier contrôleur.