Slide 1

Slide 1 text

Plantillas en Symfony2 Twig

Slide 2

Slide 2 text

¿Qué es Twig? ● Lenguaje de plantillas para PHP. ● Creado por Fabien Potencier. ● Totalmente integrado en Symfony2. ● Similar al lenguage de plantillas de Django. ● Una de las características de Symfony2 más populares.

Slide 3

Slide 3 text

PHP vs. Plantillas

Slide 4

Slide 4 text

PHP vs. Plantillas

Slide 5

Slide 5 text

PHP vs. Plantillas

Slide 6

Slide 6 text

Symfony2 tiene que tener esto

Slide 7

Slide 7 text

¿Y no hay lenguajes de plantillas en PHP?

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

A Fabien no le gustan Razones aquí: http://fabien.potencier.org/article/34/templating-engines-in-php

Slide 10

Slide 10 text

Así que “nace” Twig

Slide 11

Slide 11 text

Elementos de Twig

Slide 12

Slide 12 text

Básico Mostrar datos Definir estructuras

Slide 13

Slide 13 text

Manejo de variables

Slide 14

Slide 14 text

Acceso a variables

Slide 15

Slide 15 text

Acceso a variables ● Comprueba si foo es un array y bar un elemento. ● Si no, comprueba si foo es un objeto y bar una propiedad. ● Si no, comprueba si foo es un objeto y bar un método. ● Si no, comprueba si foo es un objeto y getBar es un método ● Si no, comprueba si foo es un objeto e isBar es un método.

Slide 16

Slide 16 text

Estableciendo variables

Slide 17

Slide 17 text

Estructuras

Slide 18

Slide 18 text

for-each

Slide 19

Slide 19 text

for

Slide 20

Slide 20 text

for

Slide 21

Slide 21 text

for-else (!!!)

Slide 22

Slide 22 text

Variable loop ● loop.index // loop.index0 ● loop.revindex // loop.revindex0 ● loop.first // loop.last ● loog.lenght ● loop.parent

Slide 23

Slide 23 text

Uso variable loop

Slide 24

Slide 24 text

if

Slide 25

Slide 25 text

Filtros

Slide 26

Slide 26 text

Filtros: Modificadores de variables “pepe” “PEPE” →

Slide 27

Slide 27 text

Filtros: Parametrizables array(“a”, “b”, “c”, “d”, “e”) “a, b, c, d, e” →

Slide 28

Slide 28 text

Filtros: Encadenables array(“a”, “b”, “c”, “d”, “e”) “A, B, C, D, E” →

Slide 29

Slide 29 text

Filtros: Encadenables array(“a”, “b”, “c”, “d”, “e”) “A, B, C, D, E” →

Slide 30

Slide 30 text

Filtros: Ejemplos

Slide 31

Slide 31 text

Filtros: Más ejemplos

Slide 32

Slide 32 text

Mis filtros: Fáciles de crear

Slide 33

Slide 33 text

Mis filtros: fáciles de añadir en SF2

Slide 34

Slide 34 text

Mis filtros: fáciles de usar

Slide 35

Slide 35 text

Embeber plantillas

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

include

Slide 38

Slide 38 text

Herencia

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

Plantilla padre

Slide 41

Slide 41 text

Plantilla hija 1

Slide 42

Slide 42 text

Plantilla padre + hija 1

Slide 43

Slide 43 text

Plantilla hija 2

Slide 44

Slide 44 text

Plantilla padre + hija 2

Slide 45

Slide 45 text

Plantilla hija 3

Slide 46

Slide 46 text

Plantilla padre + hija 3

Slide 47

Slide 47 text

Plantilla “base” de Symfony2

Slide 48

Slide 48 text

Funciones

Slide 49

Slide 49 text

Función PHP que se puede llamar desde Twig

Slide 50

Slide 50 text

No content

Slide 51

Slide 51 text

Mis funciones: Fáciles de crear

Slide 52

Slide 52 text

Mis funciones: Fáciles de usar MyFunction says Hello!

Slide 53

Slide 53 text

Macros

Slide 54

Slide 54 text

Macros: fáciles de crear

Slide 55

Slide 55 text

Macros: fáciles de usar

Slide 56

Slide 56 text

Escape de variables

Slide 57

Slide 57 text

¡¡En Symfony2 está activado por defecto!!

Slide 58

Slide 58 text

Y además...

Slide 59

Slide 59 text

¡Más cositas! ● Soporte en muchos editores: ● Vim, Textmate, Netbeans, Eclipse, SublimeText, PhpStorm, ... ● Posibilidad de crear nuevos elementos del lenguaje. ● “Modo sandbox” para probar extensiones Twig de terceros.

Slide 60

Slide 60 text

¿Y el rendimiento?

Slide 61

Slide 61 text

Las plantillas de Twig se “compilan” a PHP

Slide 62

Slide 62 text

No content

Slide 63

Slide 63 text

No content

Slide 64

Slide 64 text

Twig 1.4 va a ser un 15% más rápida renderizando

Slide 65

Slide 65 text

Resumiendo

Slide 66

Slide 66 text

Twig está lleno de características útiles. Twig es flexible. Twig es extensible. Twig es rápido. Twig es seguro. Twig se lleva muy bien con Symfony2.

Slide 67

Slide 67 text

FIN

Slide 68

Slide 68 text

e-mail [email protected] twitter @tharandur