formacion twig

20
M. Ángel Delgado TWIG

Upload: migueldelg

Post on 13-Jun-2015

365 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Formacion twig

M. Ángel Delgado

TWIG

Page 2: Formacion twig

Índice

Introducción Basics de Twig Reference Tags: Extends, Use, Include y Macro I18n en Twig

Page 3: Formacion 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

Page 4: Formacion twig

Intorducción: Basics

M. Ángel Delgado

Imprimir

{{ var }}

Acciones

{% accion %}

Comentario

{# comentario #}

Bucles

Curiosidades:

=== → sameas()

Page 5: Formacion twig

Introducción: Basics

M. Ángel Delgado

El template se divide en bloques

Estructuras de control:

Page 6: Formacion twig

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.

Page 7: Formacion twig

Introducción: Reference

M. Ángel Delgado

Page 8: Formacion twig

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

Page 9: Formacion twig

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:

Page 10: Formacion twig

Tags: extends III

M. Ángel Delgado

Herencia condicional:

Heréncia dinámica:

– A partir de 1.2:

Page 11: Formacion twig

Tags: extends IV

M. Ángel Delgado

Ejemplo de herencia:

Page 12: Formacion twig

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.

Page 13: Formacion twig

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.

Page 14: Formacion twig

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

Page 15: Formacion twig

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

Page 16: Formacion twig

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

Page 17: Formacion twig

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

Page 18: Formacion twig

Tags: macro III

M. Ángel Delgado

• Ejemplo:

Page 19: Formacion twig

I18n en Twig

M. Ángel Delgado

• Twig dispone de una extension para i18n

• Con el bloque {% trans %} podremos utilizar las etiquetas

Page 20: Formacion twig

Gracias!