Vue
La vue gère l'affichage. Elle ne fait presque aucun calcul et se contente de récupérer des variables pour savoir ce qu'elle doit afficher. On y trouve essentiellement du code HTML mais aussi quelques boucles et conditions très simples.
Utilisation de Twig
Plutôt que d'utiliser des boucles et des contrôles PHP, Symfony propose de mettre en oeuvre le moteur de template Twig.
C'est un langage supplémentaire, plus lisible et surtout plus facilement utilisable par les intégrateurs par exemple.
Affichage de variable
<?php echo $var ?>
{{ var }}
Raccourcis
{% for user in users %} * {{ user.name }} {% else %} Pas d'utilisateur. {% endfor %}
Extensible
Grâce à l'héritage, on obtient :
{% extends "layout.html" %} {% block content %} Content of the page... {% endblock %}
Ici, on ne redéfinit que le bloc content provenant de layout.html
Premier template
Fichier
templates/default/index.html.twig
{% extends 'base.html.twig' %} {% block title %}Hello {{ controller_name }}!{% endblock %} {% block body %} <style> .example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; } .example-wrapper code { background: #F5F5F5; padding: 2px 6px; } </style> <div class="example-wrapper"> <h1>Hello {{ controller_name }}! ✅</h1> This friendly message is coming from: <ul> <li>Your controller at <code> <a href="{{ 'src/Controller/DefaultController.php'|file_link(0) }}"> src/Controller/DefaultController.php</a></code></li> <li>Your template at <code> <a href="{{ 'templates/default/index.html.twig'|file_link(0) }}"> templates/default/index.html.twig</a></code></li> </ul> </div> {% endblock %}
C'est cette vue qui est appelée dans le contrôleur
class DefaultController extends AbstractController { /** * @Route("/default", name="default") */ public function index() { return $this->render('default/index.html.twig', [ 'controller_name' => 'DefaultController', ]); } }
Exercice
Il est temps d'ajouter votre propre page.
Mettez votre projet sous contrôle de version :
- Utilisez git flow
- Vous pouvez utiliser gitignore.io pour configurer votre fichier
.gitignore
- Créez une feature branch appelée battletag
Modifiez le contrôleur pour ajouter une nouvelle méthode et la route associée.
Forgez une réponse, dans laquelle vous indiquerez vos prénom, nom et battletag Blizzard (si vous n'en avez pas, inventez en un).
Une fois fonctionnelle, fusionnez battletag dans develop