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

Les templates twig

  • La construction de modèles de pages permet de dissocier :

    1. la logique de l'application d'un côté (contrôleur)
    2. les vues retournées à l'utilisateur d'un autre (vue)
  • Symfony utilise le moteur de templates twig

  • Syntaxe :

    • {# ... #} : commentaires
    • {{ ... }} : intégration d'une variable, appel de fonction PHP ou intégration d'un twig parent (forme d'héritage)
    • {% ... %} : commande ou structure de contrôle (if, for, ...)
    • ...
  • Exemple de template basique :

    {# templates/Hello/helloTemplate.twig #}
    <!DOCTYPE html>
    <html lang="en">
        <head>
        <meta charset="UTF-8">
        <title>Welcome!</title>
    </head>
    <body>
        <h1>Hello {{ title }} {{ lastName }} !</h1>
    </body>
    </html>
  • Côté contrôleur, la méthode render retourne une instance de Response construite à partir du template

    • La méthode reçoit l'URL du twig et un tableau associatif contenant les informations à injecter dans le template
    • Exemple :

      #[Route("Hello/{title}/{lastName}", name : 'maRouteTitreNom', 
                                      requirements : ['title' => '[A-Z][a-z]+'])]
      
      public function HelloTitleAction(string $title, string $lastName) : Response {
        return $this->render('Hello/helloTemplate.html.twig', 
                            ['title' => $title, 'lastName' => $lastName]);
      }