L3 Info : PHP et Applications Web
 
◃  Ch. 13 Symfony 7.4  ▹
 

Les contrôleurs

  • Dans le dossier /src/Controller on peut ajouter des classes définissant des contrôleurs
  • Un contrôleur définit des routes associées à des actions.
  • Usuellement un contrôleur hérite de Symfony\Bundle\FrameworkBundle\Controller\AbstractController.
  • Chaque Route (Symfony\Component\Routing\Annotation\Route) est décrite grâce à une annotation qui précède la méthode réalisant l'action souhaitée.
  • Les annotations correspondent à des attributs PHP (apparus avec PHP 8) qui fournissent des métadonnées structurées et lisibles par machine.
  • La réponse HTTP à l'action est produite via le résultat de la méthode, c'est une instance de Symfony\Component\HttpFoundation\Response.
  • Exemple :
<?php
// src/Controller/HelloWorldController.php
namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Response;

class HelloWorldController extends AbstractController
{
    #[Route('/HelloWorld')]
    public function HelloWorldAction(): Response
    {
        return new Response(
            '<!DOCTYPE html><html><body><h1>Hello World !</h1></body></html>'
        );
    }
}