Symfony – Les réponses HTTP
Cours 4 — Les réponses HTTP
Présentation
Après avoir exécuté un contrôleur, Symfony doit renvoyer une réponse au navigateur.
Cette réponse est appelée une réponse HTTP.
Sans réponse HTTP, le navigateur ne reçoit rien.
Schéma général
1
2
3
4
5
6
7
8
9
Navigateur
↓
Route
↓
Contrôleur
↓
Response
↓
Navigateur
1. Réponse texte simple
1
2
3
4
5
6
7
use Symfony\Component\HttpFoundation\Response;
#[Route('/bonjour', name: 'app_bonjour')]
public function bonjour(): Response
{
return new Response('Bonjour');
}
Résultat :
1
Bonjour
Comment lire ce code ?
1
return new Response('Bonjour');
Signifie :
1
2
Créer une réponse HTTP
contenant le texte Bonjour.
2. Réponse HTML
1
return new Response('<h1>Bonjour</h1>');
Résultat :
1
<h1>Bonjour</h1>
Le navigateur interprète alors le HTML.
3. Réponse générée par Twig
Le cas le plus fréquent dans Symfony.
1
2
3
return $this->render(
'accueil/index.html.twig'
);
Ce qui se passe
1
2
3
4
5
6
7
Twig
↓
HTML
↓
Response
↓
Navigateur
Même si tu ne vois pas explicitement l’objet Response, Symfony le crée automatiquement.
4. Réponse avec variables Twig
1
2
3
4
5
6
return $this->render(
'patient/show.html.twig',
[
'nom' => 'Dupont'
]
);
Twig :
1
<h1></h1>
Résultat :
1
<h1>Dupont</h1>
5. Réponse JSON
Très utilisée pour les API.
1
2
3
4
return $this->json([
'nom' => 'Dupont',
'age' => 42
]);
Résultat :
1
2
3
4
{
"nom": "Dupont",
"age": 42
}
Pourquoi est-ce utile ?
Une application Android, Flutter ou JavaScript peut lire directement ces données.
C’est exactement le principe utilisé par de nombreuses API.
6. Réponse vide
1
return new Response();
Symfony renvoie simplement une réponse vide.
À retenir
Une réponse HTTP est le résultat final envoyé au navigateur.
Dans Symfony, elle peut contenir :
- du texte ;
- du HTML ;
- une page Twig ;
- du JSON.
Schéma mental :
1
2
3
4
5
Contrôleur
↓
Response
↓
Navigateur
Conclusion
La réponse HTTP est l’étape finale du traitement d’une requête.
Quand tu lis un contrôleur Symfony, la première chose à regarder est souvent :
1
return ...
C’est cette instruction qui détermine ce que recevra réellement l’utilisateur.