twigEmpezando con la ramita


Observaciones

Esta sección proporciona una descripción general de qué es la ramita y por qué un desarrollador puede querer usarla.

También debe mencionar cualquier tema grande dentro de la rama, y ​​vincular a los temas relacionados. Dado que la Documentación para la ramita es nueva, es posible que deba crear versiones iniciales de los temas relacionados.

Uso básico de API

También se puede instalar descargando el código fuente y colocándolo en un directorio de su proyecto. Sin embargo, hay muchos beneficios al usar compositor.

require '/path/to/lib/Twig/Autoloader.php';
Twig_Autoloader::register();

$loader = new Twig_Loader_Filesystem('/path/to/templates');

$options = array(
    'strict_variables' => false,
    'debug' => false,
    'cache'=> false
);

$twig = new Twig_Environment($loader, $options);
 

Al crear una nueva instancia de Twig_Environment , puede pasar una matriz de opciones como segundo argumento del constructor. Aquí hay una lista de las opciones disponibles:

  • depuración ( booleano , predeterminado false )

Cuando se establece en verdadero, las plantillas generadas tienen un método __toString() que puede usar para mostrar los nodos generados.

  • conjunto de caracteres ( cadena , por defecto utf-8 )

El conjunto de caracteres utilizado por las plantillas.

  • base_template_class ( cadena , Twig_Template defecto)

La clase de plantilla base a usar para las plantillas generadas.

  • caché ( cadena o false , false defecto)

Una ruta absoluta donde almacenar las plantillas compiladas, o falsa para deshabilitar el almacenamiento en caché (que es el valor predeterminado).

  • auto_reload ( booleano , predeterminado heredado de la depuración )

Cuando se desarrolla con Twig, es útil volver a compilar la plantilla siempre que cambie el código fuente. Si no proporciona un valor para la opción auto_reload, se determinará automáticamente en función del valor de depuración.

  • strict_variables ( booleano , predeterminado false )

Si se establece en falso, Twig ignorará silenciosamente las variables no válidas (variables y / o atributos / métodos que no existen) y las reemplazará con un valor nulo. Cuando se establece en verdadero, Twig lanza una excepción en su lugar.

  • autoescape ( string o booleano , por defecto true )

Si se establece en verdadero, el escape automático de HTML se habilitará de forma predeterminada para todas las plantillas.

A partir de Twig 1.8, puede configurar la estrategia de escape para usar (html, js, false para deshabilitar).

A partir de Twig 1.9, puede configurar la estrategia de escape para usar (css, url, html_attr o una devolución de llamada de PHP que toma la plantilla "nombre de archivo" y debe devolver la estrategia de escape para usarla - la devolución de llamada no puede ser un nombre de función para evitar colisión con estrategias de escape incorporadas).

A partir de Twig 1.17, la estrategia de escape de nombre de archivo determina la estrategia de escape que se debe utilizar para una plantilla basada en la extensión del nombre de archivo de la plantilla (esta estrategia no implica ningún gasto adicional en tiempo de ejecución, ya que el escape automático se realiza en el momento de la compilación).

  • optimizaciones ( entero , por defecto -1 )

Una bandera que indica qué optimizaciones aplicar:
set to -1 to enabled all optimalizations
set o 0 to disable all optimalitazations

Guía oficial de instalación de Twig

Una extensión Twig PHP (escrita en C) también se puede compilar e instalar, y el paquete PHP automáticamente aprovechará eso para optimizar algunas rutinas comunes.

Introducción

Si tiene alguna exposición a otros idiomas de plantillas basadas en texto, como Smarty , Django o Jinja , debe sentirse como en casa con Twig . Es amigable tanto para los diseñadores como para los desarrolladores al seguir los principios de PHP y agregar funcionalidades útiles para los entornos de plantillas.

Las características clave son ...

  • Rápido: Twig compila las plantillas hasta el código PHP optimizado. La sobrecarga en comparación con el código PHP normal se redujo al mínimo.
  • Seguro: Twig tiene un modo de caja de arena para evaluar el código de la plantilla no confiable. Esto permite que Twig se utilice como lenguaje de plantilla para aplicaciones donde los usuarios pueden modificar el diseño de la plantilla.
  • Flexible: Twig es impulsado por un lexer y un analizador flexibles. Esto permite al desarrollador definir sus propias etiquetas y filtros personalizados , y crear su propio DSL.

Twig es utilizado por muchos proyectos de código abierto como Symfony , Drupal , eZPublish y muchos frameworks tienen soporte también para ellos, como Slim , Yii , Laravel , Codeigniter , silex y Kohana , solo por nombrar algunos.

Instalación

La forma recomendada de instalar Twig es a través de Composer :

Para usuarios de php 5.x

composer require "twig/twig:~1.0"
 

Para usuarios de php 7.x

composer require "twig/twig:~2.0"
 

¿Qué es la ramita?

Twig es un lenguaje de plantillas que compila a código PHP optimizado. Se utiliza principalmente para generar HTML, pero también puede utilizarse para generar cualquier otro formato basado en texto. Es un componente independiente que se puede integrar fácilmente en cualquier proyecto de PHP.

Proporciona muchas características excelentes:

  • Autoescaping para HTML (ayuda a prevenir XSS)
  • Sintaxis diseñada teniendo en cuenta las plantillas (basadas en plantillas de Django)
  • Herencia de plantillas
  • Macros

Documentación oficial de plantillas Twig

Ejemplo de sintaxis de Twig:

{% extends "base.html" %}

{% block sidebar %}
  {{ parent() }}
  <span>Sidebar content specific to this page</span>
{% endblock sidebar %}

{% block body %}
  <p>Select an item:</p>
  <ul>
    {% for item in list %}
      <li><a href="/items/{{ item.id }}">{{ item.name }}</a>
    {% else %}
      <li>No items yet.
    {% endfor %}
  </ul>
{% endblock body %}