twigLa construction de modèles de pages permet de dissocier :
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
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]);
}