SlideShare una empresa de Scribd logo
1 de 20
TWIG


       M. Ángel Delgado
Índice


    Introducción

    Basics de Twig

    Reference

    Tags: Extends, Use, Include y Macro

    I18n en Twig
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
Intorducción: Basics

    Imprimir                      
                                      Bucles
         −     {{ var }}

    Acciones
         −     {% accion %}

    Comentario
         −     {# comentario #}   
                                      Curiosidades:
                                         −     === → sameas()



                                                           M. Ángel
                                                           Delgado
Introducción: Basics

    El template se divide en bloques





    Estructuras de control:




                                       M. Ángel
                                       Delgado
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
Introducción: Reference




                          M. Ángel
                          Delgado
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
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
Tags: extends III


    Herencia condicional:


    Heréncia dinámica:


    –   A partir de 1.2:




                                   M. Ángel
                                   Delgado
Tags: extends IV

    Ejemplo de herencia:




                                  M. Ángel
                                  Delgado
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
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
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
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
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
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
Tags: macro III

•   Ejemplo:




                                 M. Ángel
                                 Delgado
I18n en Twig

•   Twig dispone de una extension para i18n




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




                                                         M. Ángel
                                                         Delgado
Gracias!

Más contenido relacionado

La actualidad más candente (13)

4 unidad polimorfismo
4 unidad polimorfismo4 unidad polimorfismo
4 unidad polimorfismo
 
Unidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a ObjetosUnidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a Objetos
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Herencia Y Polimorfismo
Herencia Y PolimorfismoHerencia Y Polimorfismo
Herencia Y Polimorfismo
 
JAVA- basico
JAVA- basicoJAVA- basico
JAVA- basico
 
Java Basico
Java BasicoJava Basico
Java Basico
 
cuestionario de Programación
cuestionario de Programación cuestionario de Programación
cuestionario de Programación
 
Fundamentos de Java
Fundamentos de JavaFundamentos de Java
Fundamentos de Java
 
Tema2
Tema2Tema2
Tema2
 
Unidad 2, actividad 1, Ahora pensemos en Java.
Unidad 2, actividad 1, Ahora pensemos en Java.Unidad 2, actividad 1, Ahora pensemos en Java.
Unidad 2, actividad 1, Ahora pensemos en Java.
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Presentacion de clases en c#
Presentacion de clases en c#Presentacion de clases en c#
Presentacion de clases en c#
 
Herencia y Polimorfismo
Herencia y PolimorfismoHerencia y Polimorfismo
Herencia y Polimorfismo
 

Destacado (7)

Tutorial3 Desymfony - La Vista. Twig
Tutorial3 Desymfony - La Vista. TwigTutorial3 Desymfony - La Vista. Twig
Tutorial3 Desymfony - La Vista. Twig
 
BilboStack - Php en el 2012
BilboStack - Php en el 2012BilboStack - Php en el 2012
BilboStack - Php en el 2012
 
REST and the Hypermedia Constraint
REST and the Hypermedia ConstraintREST and the Hypermedia Constraint
REST and the Hypermedia Constraint
 
Silex para aplicaciones web MVC
Silex para aplicaciones web MVCSilex para aplicaciones web MVC
Silex para aplicaciones web MVC
 
PHP en el 2015
PHP en el 2015PHP en el 2015
PHP en el 2015
 
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...
 
Implementing a Symfony Based CMS in a Publishing Company
Implementing a Symfony Based CMS in a Publishing CompanyImplementing a Symfony Based CMS in a Publishing Company
Implementing a Symfony Based CMS in a Publishing Company
 

Similar a Formacion twig

Anon metodologia de la programacion orientada a objetos con c++
Anon   metodologia de la programacion orientada a objetos con c++Anon   metodologia de la programacion orientada a objetos con c++
Anon metodologia de la programacion orientada a objetos con c++
ratasquerosaXX
 
Metodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prevMetodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prev
jtk1
 
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
Didier Granados
 

Similar a Formacion twig (10)

Anon metodologia de la programacion orientada a objetos con c++
Anon   metodologia de la programacion orientada a objetos con c++Anon   metodologia de la programacion orientada a objetos con c++
Anon metodologia de la programacion orientada a objetos con c++
 
Fundamentos de Java II
Fundamentos de Java IIFundamentos de Java II
Fundamentos de Java II
 
Trabajo de estructura de datos
Trabajo de estructura de datosTrabajo de estructura de datos
Trabajo de estructura de datos
 
Trabajo de estructura de datos
Trabajo de estructura de datosTrabajo de estructura de datos
Trabajo de estructura de datos
 
Met2 07 01-introduccion_poo
Met2 07 01-introduccion_pooMet2 07 01-introduccion_poo
Met2 07 01-introduccion_poo
 
¡Twig desde 0!
¡Twig desde 0! ¡Twig desde 0!
¡Twig desde 0!
 
Metodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prevMetodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prev
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
 
Programación de módulos para Drupal 7
Programación de módulos para Drupal 7Programación de módulos para Drupal 7
Programación de módulos para Drupal 7
 
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Último (15)

Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 

Formacion twig

  • 1. TWIG M. Ángel Delgado
  • 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
  • 4. Intorducción: Basics  Imprimir  Bucles − {{ var }}  Acciones − {% accion %}  Comentario − {# comentario #}  Curiosidades: − === → sameas() 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
  • 7. Introducción: Reference 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
  • 11. Tags: extends IV  Ejemplo de herencia: 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
  • 18. Tags: macro III • Ejemplo: M. Ángel Delgado
  • 19. I18n en Twig • Twig dispone de una extension para i18n • Con el bloque {% trans %} podremos utilizar las etiquetas M. Ángel Delgado