2. Índice
Introducción
Basics de Twig
Reference
Tags: Extends, Use, Include y Macro
I18n en Twig
3. Introducción
Twig es un motor de plantillas que se usa por
defecto en symfony2
Una plantilla es un archivo de texto que puede ser generado en el
formato que queramos (HTML, CSS, XML,..)
Rápido, Seguro y Flexible
Sistema de herencia de plantillas
Cacheo de plantillas
M. Ángel
Delgado
5. Introducción: Basics
El template se divide en bloques
Estructuras de control:
M. Ángel
Delgado
6. Cacheo de templates
Twig es rápido ya que cada plantilla se compila a clases
PHP que se renderizan en tiempo de ejecución.
En devel podémos pasarle un atributo (debug = true) al array de
opciones para forzar a la generación de las clases en cada
ejecución.
M. Ángel
Delgado
8. Tags: extends I
Permite extender de otro template
Muy eficaz para la reutilizacion de código
Se tiene que introducir siempre al principio del
documento y solo se puede extender de un
template
M. Ángel
Delgado
9. Tags: extends II
{{ parent() }} el contenido original del mismo bloque en
la plantilla base sea agregado
Curiosidad: Podemos poner el nombre del bloque en el
cierre para facilitar su lectura:
M. Ángel
Delgado
10. Tags: extends III
Herencia condicional:
Heréncia dinámica:
– A partir de 1.2:
M. Ángel
Delgado
12. Tags: Use
• Importamos bloques de otros templates
pero:
– No pueden extender de ningún otro.
– No tienen macros definidas.
– Su body esta vacío.
M. Ángel
Delgado
13. Tags: Use II
• Si el template tiene un bloque con el mismo nombre, se
ignora el de use.
– Para ello podemos usar el {{ parent() }} (desde 1.3)
– Podemos renombrar el bloque
• Podemos usar el use tantas veces como queramos pero si dos o
más templates tienen el mismo bloque el ultimo es el que gana.
M. Ángel
Delgado
14. Tags: Include
• Podemos acceder a las variables del que lo invoca
• Podemos añadirle nuevas variables al template
• Podemos bloquear el acceso a las variables
M. Ángel
Delgado
15. Tags: Include II
• Control sobre los include:
• Include condicional:
• Include dinámico:
• Si no se añade el include missing y no existe ningun template, dara una excepción
M. Ángel
Delgado
16. Tags: macro
• Son funciones pero:
– Los valores predeterminados de los argumentos se
definen usando el filtro default en el cuerpo de la
macro;
– Los argumentos de una macro siempre son
opcionales.
M. Ángel
• No podemos acceder a las variables de la plantilla Delgado
17. Tags: macro II
• Debemos importar las macro como si de una
plantilla se tratase
• Si la macro está definida en la misma
plantilla, accedemos mediante _self
M. Ángel
Delgado