Chargement...

Le moteur de template TWIG de Symfony


Le moteur de templte TWIG

Travailler avec des templates (ou des vues) permet de séparer le code PHP du rendu. Cela permet une meilleur organisation du travail, notammement le travail collaboratif ou certaines personnes sont amenées à ne travailler que sur les vues tandis que d'autres travailleront qu'avec PHP. On parle alors de BACK (PHP) et de FRONT (HTML).

Le moteur de template TWIG permet d'augmenter le productivité des développeurs FRONT on proposant un langage spécialisé plus concis et plus clair que peut l'être PHP.

Exemple d'utilisation

Pour créer un template vous pouvez le nommer par exemple index.html.twig et l'appeler depuis une fonction d'un controlleur. (voir le chapitre précédent)

Hello {{name}} !

Dans cet exemple la variable name est indiqué et le rendu, si on prend l'exemple vu dans le cahpitre précédent sera:

Hello Olivier !

La puissance de TWIG

Afficher l'index d'un tableau {{customer['id']}}
Afficher l'attribut d'un objet {{customer.id}}
Afficher une date {{date|date('d/m/Y')}}
Afficher une chaine en minuscules {{name|upper}}
Afficher la taille d'une chaine {{name||length}}

Structure de controle : IF ELSE

{% if customer.id = 1 %}
  Blablabla
{% elseif customer.id < 1000 %}
  Blablabla
{% else %}
  Blablabla
{% endif %}

BOUCLE FOR

{% for customer in customers %}
  <option>{{customer.name}}</option>
{% endfor %}

L'héritage de template

L'idée c'est d'avoir un squelette unique du site et qu'on puisse le récupérer pour chaque page.

Notre squelette (layout):

<!DOCTYPE HTML>
<html>
  <head>
    <meta charset="utf-8">
    <title>{% block title %}Bienvenue sur mon site{% endblock %}</title>
  </head>
  <body>
    {% block body %}
    {% endblock %}
  </body>
</html>

Et notre page spécifique:

{% extends "ENGELAwesomeBundle:Default:layout.html.twig" %}

{% block title %}{{ parent() }} - Page 1{% endblock %}

{% block body %}
Bienvenue sur le site AwesomeBundle!
{% endblock %}



Crée votre site web au meilleur prix💰


CSSW Apprendre à créer son site web