Ver índice de contenidos del libro

2.4. Mejorando las plantillas

Si quieres utilizarlo, Symfony2 incluye de serie un motor de plantillas llamado Twig que hace que las plantillas se escriban más rápido y sean más fáciles de leer.

En otras palabras, la aplicación de ejemplo desarrollada anteriormente podría incluso tener menos código. Considera por ejemplo la siguiente plantilla list reescrita con Twig:

{# src/Acme/BlogBundle/Resources/views/Blog/list.html.twig #}
 
{% extends "::base.html.twig" %}
{% block title %}List of Posts{% endblock %}
 
{% block body %}
    <h1>List of Posts</h1>
    <ul>
        {% for post in posts %}
        <li>
            <a href="{{ path('blog_show', { 'id': post.id }) }}">
                {{ post.title }}
                </a>
        </li>
        {% endfor %}
    </ul>
{% endblock %}

También es muy fácil escribir la plantilla base.html.twig correspondiente:

{# app/Resources/views/base.html.twig #}
 
<html>
    <head>
    <title>{% block title %}Default title{% endblock %}</title>
    </head>
    <body>
    {% block body %}{% endblock %}
    </body>
</html>

Twig está completamente integrado en Symfony2. Aunque Symfony2 siempre soportará las plantillas PHP, en los siguientes capítulos se van a seguir presentando algunas de las muchas ventajas de Twig respecto a las plantillas PHP. Para más información, consulta el capítulo sobre las plantillas.