Ramita
Ramita
Twig es un motor de plantilla para el lenguaje de programación PHP , utilizado por defecto por el marco Symfony .
Se inspiró en Jinja , un motor de plantillas de Python .
Características
- control de flujo complejo
- escape automático
- herencia de plantilla
- filtros variables
- internacionalización (vía gettext)
- macros
- lenguaje extensible.
Apoyado por entornos de desarrollo integrados como:
Y los editores de texto:
Sintaxis
- {{...}}: llamada a una variable o función PHP, o una plantilla padre Twig ( {{ parent() }}).
- {# ... #}: comentarios.
- {% ...%}: comando, como una asignación, condición, bucle o bloque HTML.
- {% set foo = 'bar'%}: asignación.
- {% si i está definido e i == 1%} ... {% endif%}: condición.
- {% for i in 0..10%} ... {% endfor%}: contador en un bucle.
- ': Personaje de escape.
Para crear una tabla iterativa:
{% set myArray = [1, 2] %}
Una matriz asociativa:
{% set myArray = {'key': 'value'} %}
Precedencia de operadores
Al menos con la máxima prioridad:
Operador |
Papel
|
---|
banda |
Y booleano
|
b-xor |
O exclusivo
|
b-o |
O booleano
|
oro |
O
|
y |
Y
|
== |
Es igual
|
! = |
Es diferente
|
< |
Inferior
|
> |
Superior
|
> = |
Mayor qué o igual a
|
<= |
Menor o igual
|
en |
Dentro
|
partidos |
Corresponde
|
comienza con |
Comienza por
|
termina con |
Para terminar por
|
.. |
Secuencia (p 1..5. Ej. )
|
+ |
Más
|
- |
Menos
|
~ |
Concatenación
|
* |
Multiplicación
|
/ |
División
|
// |
División redondeada hacia abajo
|
% |
Modulo
|
es |
Prueba (ej: is definedo is not empty)
|
** |
Potencia
|
| |
Filtrado
|
[] |
Entrada de tabla
|
. |
Atributo o método de un objeto (p country.name. Ej. )
|
Filtros
Los filtros proporcionan procesamiento en una expresión, si se colocan después de ella separados por conductos. Por ejemplo :
-
capitalize : pone una letra mayúscula a la primera letra de una cadena de caracteres.
-
upper : pone la cadena en letras mayúsculas.
-
first : muestra la primera fila de una tabla.
-
length : devuelve el tamaño de la variable.
Variables especiales
-
loopcontiene la información del bucle en el que se encuentra. Por ejemplo, loop.indexda el número de iteraciones ya ocurridas.
- 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, para obtener la ruta de una página: {{ path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}
- Las variables de entorno CGI , como{{ app.request.server.get('SERVER_NAME') }}
Ejemplo
Si el archivo "base.html" contiene el encabezado y pie de página HTML común a todas las páginas, estas páginas pueden heredarlo con la palabra extends.
{% extends "base.html.twig" %}
{% block navigation %}
<ul id="navigation">
{% for item in navigation %}
<li>
<a href="{{ item.href }}">
{% if item.level == 2 %}
{{ item.name|upper }}
{% endif %}
</a>
</li>
{% endfor %}
</ul>
{% endblock navigation %}
Notas y referencias
-
" Versión 3.3.0 " ,8 de febrero de 2021(consultado el 17 de febrero de 2021 )
-
http://fabien.potencier.org/templating-engines-in-php.html#twig
-
Symfony , “ Filtros - Documentación - Twig - La flexibles, rápido y seguro motor de plantillas PHP ” , en twig.sensiolabs.org
-
Symfony , " Extendiendo Twig - Documentación - Twig - El motor de plantillas PHP flexible, rápido y seguro " , en twig.sensiolabs.org
-
Symfony , " Twig para diseñadores de plantillas - Documentación - Twig - El motor de plantillas PHP flexible, rápido y seguro " , en twig.sensiolabs.org
-
Symfony , " set - Documentation - Twig - El motor de plantillas PHP flexible, rápido y seguro " , en twig.sensiolabs.org
-
Symfony , " Twig para diseñadores de plantillas - Documentación - Twig - El motor de plantillas PHP flexible, rápido y seguro " , en twig.sensiolabs.org