Comenzando con ramita

Uso básico de la 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 composer.

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 Twig_Environment, puede pasar una serie de opciones como segundo argumento del constructor. Aquí hay una lista de las opciones disponibles:

  • depuración (booleano, por defecto falso)

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

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

El conjunto de caracteres utilizado por las plantillas.

  • base_template_class (cadena, por defecto Twig_Template)

La clase de plantilla base que se usará para las plantillas generadas.

  • caché (cadena o falso, por defecto falso)

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

  • auto_reload (booleano, predeterminado heredado de debug)

Al desarrollar con Twig, es útil volver a compilar la plantilla cada vez que cambia el código fuente. Si no proporciona un valor para el opción auto_reload, se determinará automáticamente en función de la valor de depuración.

  • variables_estrictas (booleano, por defecto falso)

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

  • escape automático (cadena o booleano, predeterminadoverdadero)

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, falso 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 usar: la devolución de llamada no se puede un nombre de función para evitar colisiones con estrategias de escape integradas).

A partir de Twig 1.17, la estrategia de escape del nombre de archivo determina la estrategia de escape que se utilizará para una plantilla en función del nombre de archivo de la plantilla extensión (esta estrategia no incurre en gastos generales en tiempo de ejecución como 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:
establecido en -1 para habilitar todas las optimizaciones
set o 0 para deshabilitar todas las optimizaciones

Guía de instalación oficial de Twig

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

¿Qué es ramita?

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

Proporciona muchas características excelentes:

  • Autoescape para HTML (ayuda a prevenir XSS)
  • Sintaxis diseñada con plantillas en mente (basada en plantillas de Django)
  • Herencia de plantilla
  • macros

Documentación oficial de plantillas de 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 %}

Introducción

Si está expuesto a otros lenguajes de plantilla basados ​​en texto, como Smarty, Django o Jinja, debe sentirse como en casa con Twig . Es amigable tanto para el diseñador como para el desarrollador *** ya que se adhiere a los principios de PHP y agrega funcionalidad útil para entornos de creación de plantillas.

Las características clave son…

  • Rápido: Twig compila plantillas en código PHP optimizado simple. La sobrecarga en comparación con el código PHP normal se redujo al mínimo. mínimo.

  • Seguro: Twig tiene un modo de espacio aislado para evaluar la plantilla que no es de confianza código. Esto permite que Twig se use como lenguaje de plantilla para aplicaciones donde los usuarios pueden modificar el diseño de la plantilla.

  • Flexible: Twig funciona con un lexer y un parser flexibles. Este permite al desarrollador definir sus propias etiquetas personalizadas y filtros, y para crear su propia DSL.

Twig es utilizado por muchos proyectos de código abierto como Symfony, Drupal, eZPublish y muchos marcos también tienen soporte para él como Slim, [Yii] 9, 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"