Articulo de referencia

Twig (motor de plantillas)

{{Cite web|url=https://github.com/mitsuhiko/twig|title=mitsuhiko/twig|date=August 13, 2019|website=GitHub}} Fabien Potencier"},"developer":{"wt":"[https://symfony.com Symfony SA...

Twig es un motor de plantillas gratuito y de código abierto para PHP . Su sintaxis se origina en las plantillas Jinja y Django . [ 3 ] Tiene licencia BSD y es mantenido por Fabien Potencier. La versión inicial fue creada por Armin Ronacher . Symfony incluye soporte integrado para Twig como su motor de plantillas predeterminado desde la versión 2. [ 4 ]

El motor de plantillas Nunjucks utiliza el mismo lenguaje de plantillas, por lo que Nunjucks también es compatible con las siguientes herramientas.

Características

  • Flujo de control complejo
  • Escape automático
  • Herencia de plantillas
  • Filtros variables [ 5 ]
  • Soporte i18n (gettext)
  • Macros
  • Totalmente ampliable [ 3 ] [ 6 ]

Twig es compatible con los siguientes entornos de desarrollo integrados : [ 3 ]

  • Eclipse a través del complemento Twig
  • Komodo y Komodo Edit a través del modo de resaltado/verificación de sintaxis de Twig
  • NetBeans mediante el complemento de sintaxis Twig (hasta la versión 7.1, de forma nativa a partir de la versión 7.2)
  • PhpStorm (nativo a partir de la versión 2.1)
  • Entornos de desarrollo integrados (IDE) IntelliJ, incluido WebStorm, mediante un complemento.

Twig es compatible con los siguientes editores de texto :

  • Atom a través de PHP-twig para Atom
  • Emacs a través de web-mode.el
  • Notepad++ a través del resaltador Twig de Notepad++
  • Sublime Text a través del paquete Twig
  • TextMate a través del paquete Twig
  • Vim a través del complemento de sintaxis Jinja o el complemento vim-twig
  • Soportes a través de Brackets Twig
  • Visual Studio Code a través de la extensión Twig
  • GTKSourceView a través de la definición del lenguaje Twig
  • Coda a través del modo de sintaxis Twig
  • Coda 2 a través del otro modo de sintaxis de Twig
  • SubEthaEdit a través del modo de sintaxis Twig

Sintaxis

Twig define tres tipos de delimitadores:

  • {{ ... }}Se utiliza para imprimir el contenido de las variables o el resultado de evaluar una expresión. [ 7 ] : 585
  • {# ... #}Se utiliza para añadir comentarios en las plantillas. Estos comentarios no se incluyen en la página final.
  • {% ... %}Se utiliza para ejecutar instrucciones, como bucles for. [ 7 ] : 585 Por ejemplo:
    • {%setfoo='bar'%}, asignar. [ 8 ]
    • {%ifiisdefinedandi==1%} ... {%endif%}: condición.
    • {%foriin0..10%} ... {%endfor%}: contador en un bucle.

A diferencia de PHP base, las variables de Twig no comienzan con un signo de dólar . [ 7 ] : 576 El apóstrofo (') es el carácter de escape.

Para crear un array iterativo:

{% establecer myArray = [ 1 , 2 ] %}

Un arreglo asociativo:

{% establecer myArray = { 'key' : 'value' } %}

Precedencia de operadores

La precedencia de los operadores es, [ 3 ] de menor a mayor prioridad:

Filtros

Los filtros proporcionan algunos tratamientos a una expresión, cuando se colocan después de ella, separados por barras verticales. Por ejemplo: [ 5 ]

  • capitalize: cambia la primera letra de una cadena a mayúscula.
  • upper: cambia una cadena completa a mayúsculas.
  • first: muestra la primera línea de una matriz.
  • length: devuelve un tamaño variable.

Variables especiales

  • loopContiene la información del bucle actual. Por ejemplo, loop.indexcorresponde al número de iteraciones que ya se han producido.
  • Las variables globales comienzan con guiones bajos. Por ejemplo:
    • _route (parte de la URL ubicada después del dominio)
    • _self (nombre del archivo actual)
    Entonces, a la ruta de la página:{{ path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}
  • Las variables de entorno CGI , como por ejemplo {{ app.request.server.get('SERVER_NAME') }}:

Ejemplo

El siguiente ejemplo muestra algunas características básicas de Twig.

{% extends "base.html" %} {% block navigation %} < ul id = "navigation" > {% for item in navigation %} < li > < a href = " {{ item.href }} " > {% if item.level == 2 %}    {% endif %} {{ item.caption | upper }} </ a > </ li > {% endfor %} </ ul > {% endblock navigation %}

Uso en el mundo real

Twig se ha convertido en un motor de plantillas ampliamente adoptado en el ecosistema PHP. Es el lenguaje de plantillas predeterminado para el framework Symfony y también está integrado en varios sistemas de gestión de contenido (CMS) y aplicaciones, entre ellos:

  • A partir de la versión 8, Drupal adoptó Twig como su motor de plantillas predeterminado, reemplazando a PHPTemplate.
  • CraftCMS utiliza Twig como su único lenguaje de plantillas, lo que permite a los desarrolladores crear experiencias de interfaz de usuario altamente personalizadas.
  • eZ Platform (Ibexa) integra Twig para la representación de plantillas dentro de su sistema de gestión de contenidos.
  • Bolt CMS utiliza Twig para la creación de temas y la representación del front-end.
  • ShopWired utiliza Twig para la creación de temas y la representación de la interfaz de usuario.
  • OpenCart utiliza Twig para la creación de temas y la representación HTML.

Twig también se utiliza en muchas aplicaciones PHP personalizadas donde la seguridad y la legibilidad de las plantillas son fundamentales. Su similitud con las plantillas de Jinja y Django ha contribuido a que resulte familiar para desarrolladores provenientes de Python y otros ecosistemas similares.

Véase también

Referencias

  1. "mitsuhiko/twig" . GitHub . 13 de agosto de 2019.
  2. "Versión 3.22.1" . 16 de noviembre de 2025. Consultado el 18 de noviembre de 2025 .
  3. 1 2 3 4 "Twig para diseñadores de plantillas - Documentación - Twig - El motor de plantillas PHP flexible, rápido y seguro" . Twig .
  4. "Documentación de Symfony2 — Documentación" . Twig . 5 de agosto de 2010. Archivado del original el 5 de agosto de 2010.
  5. 1 2 3 "Filtros - Documentación - Twig - El motor de plantillas PHP flexible, rápido y seguro" . Twig .
  6. "Ampliando Twig - Documentación - Twig - El motor de plantillas PHP flexible, rápido y seguro" . Twig .
  7. 1 2 3 Jon Duckett; Emme Stone; Chris Ullman (2022). PHP y MySQL: desarrollo web del lado del servidor . Hoboken, Nueva Jersey : John Wiley & Sons, Inc. ISBN 978-1-119-14921-7LCCN 2021951353. Archivado del original el 30 de abril de 2025. Consultado el 28 de abril de 2026 . 
  8. "set - Documentación - Twig - El motor de plantillas PHP flexible, rápido y seguro" . Twig .
  • Sitio web oficial de Twig
  • Fabien Potencier (07-10-2009). "Motores de plantillas en PHP" . Recuperado el 27-10-2023 .
Obtenido de " https://en.wikipedia.org/w/index.php?title=Twig_(template_engine)&oldid=1355864235 "