Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Plantillas en Symfony2: Twig

Plantillas en Symfony2: Twig

Presentación para Seminarios TheEvnt: Symfony2 por César Suárez Ortega

César Suárez Ortega

November 25, 2011
Tweet

More Decks by César Suárez Ortega

Other Decks in Programming

Transcript

  1. Plantillas en Symfony2
    Twig

    View Slide

  2. ¿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.

    View Slide

  3. PHP vs. Plantillas

    View Slide

  4. PHP vs. Plantillas

    View Slide

  5. PHP vs. Plantillas

    View Slide

  6. Symfony2 tiene que tener esto

    View Slide

  7. ¿Y no hay lenguajes
    de plantillas en PHP?

    View Slide

  8. View Slide

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

    View Slide

  10. Así que “nace”
    Twig

    View Slide

  11. Elementos de
    Twig

    View Slide

  12. Básico
    Mostrar datos
    Definir estructuras

    View Slide

  13. Manejo de
    variables

    View Slide

  14. Acceso a variables

    View Slide

  15. 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.

    View Slide

  16. Estableciendo variables

    View Slide

  17. Estructuras

    View Slide

  18. for-each

    View Slide

  19. for

    View Slide

  20. for

    View Slide

  21. for-else (!!!)

    View Slide

  22. Variable loop

    loop.index // loop.index0

    loop.revindex // loop.revindex0

    loop.first // loop.last

    loog.lenght

    loop.parent

    View Slide

  23. Uso variable loop

    View Slide

  24. if

    View Slide

  25. Filtros

    View Slide

  26. Filtros: Modificadores de
    variables
    “pepe” “PEPE”

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  30. Filtros: Ejemplos

    View Slide

  31. Filtros: Más ejemplos

    View Slide

  32. Mis filtros: Fáciles de crear

    View Slide

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

    View Slide

  34. Mis filtros: fáciles de usar

    View Slide

  35. Embeber
    plantillas

    View Slide

  36. View Slide

  37. include

    View Slide

  38. Herencia

    View Slide

  39. View Slide

  40. Plantilla padre

    View Slide

  41. Plantilla hija 1

    View Slide

  42. Plantilla padre + hija 1

    View Slide

  43. Plantilla hija 2

    View Slide

  44. Plantilla padre + hija 2

    View Slide

  45. Plantilla hija 3

    View Slide

  46. Plantilla padre + hija 3

    View Slide

  47. Plantilla “base” de Symfony2

    View Slide

  48. Funciones

    View Slide

  49. Función PHP que se puede
    llamar desde Twig

    View Slide

  50. View Slide

  51. Mis funciones: Fáciles de crear

    View Slide

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

    View Slide

  53. Macros

    View Slide

  54. Macros: fáciles de crear

    View Slide

  55. Macros: fáciles de usar

    View Slide

  56. Escape de
    variables

    View Slide

  57. ¡¡En Symfony2 está
    activado por defecto!!

    View Slide

  58. Y además...

    View Slide

  59. ¡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.

    View Slide

  60. ¿Y el rendimiento?

    View Slide

  61. Las plantillas de Twig
    se “compilan” a PHP

    View Slide

  62. View Slide

  63. View Slide

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

    View Slide

  65. Resumiendo

    View Slide

  66. 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.

    View Slide

  67. FIN

    View Slide

  68. e-mail
    [email protected]
    twitter
    @tharandur

    View Slide