Date post: | 13-Jun-2015 |
Category: |
Technology |
Upload: | migueldelg |
View: | 354 times |
Download: | 1 times |
M. Ángel Delgado
TWIG
Índice
Introducción Basics de Twig Reference Tags: Extends, Use, Include y Macro I18n en Twig
Introducción
M. Ángel Delgado
Twig es un motor de plantillas que se usa por defecto en symfony2Una 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
Intorducción: Basics
M. Ángel Delgado
Imprimir
{{ var }}
Acciones
{% accion %}
Comentario
{# comentario #}
Bucles
Curiosidades:
=== → sameas()
Introducción: Basics
M. Ángel Delgado
El template se divide en bloques
Estructuras de control:
Cacheo de templates
M. Ángel Delgado
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.
Introducción: Reference
M. Ángel Delgado
Tags: extends I
M. Ángel Delgado
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
Tags: extends II
M. Ángel Delgado
{{ 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:
Tags: extends III
M. Ángel Delgado
Herencia condicional:
Heréncia dinámica:
– A partir de 1.2:
Tags: extends IV
M. Ángel Delgado
Ejemplo de herencia:
Tags: Use
M. Ángel Delgado
• Importamos bloques de otros templates pero:– No pueden extender de ningún otro.
– No tienen macros definidas.
– Su body esta vacío.
Tags: Use II
M. Ángel Delgado
• 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.
Tags: Include
M. Ángel Delgado
• Podemos acceder a las variables del que lo invoca
• Podemos añadirle nuevas variables al template
• Podemos bloquear el acceso a las variables
Tags: Include II
M. Ángel Delgado
• 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
Tags: macro
M. Ángel Delgado
• 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.
• No podemos acceder a las variables de la plantilla
Tags: macro II
M. Ángel Delgado
• Debemos importar las macro como si de una plantilla se tratase
• Si la macro está definida en la misma plantilla, accedemos mediante _self
Tags: macro III
M. Ángel Delgado
• Ejemplo:
I18n en Twig
M. Ángel Delgado
• Twig dispone de una extension para i18n
• Con el bloque {% trans %} podremos utilizar las etiquetas
Gracias!