twigIniziare con il ramoscello


Osservazioni

Questa sezione fornisce una panoramica di cosa è il ramoscello e perché uno sviluppatore potrebbe volerlo utilizzare.

Dovrebbe anche menzionare eventuali soggetti di grandi dimensioni all'interno del ramoscello e collegarsi agli argomenti correlati. Poiché la Documentazione per twig è nuova, potrebbe essere necessario creare versioni iniziali di tali argomenti correlati.

Utilizzo API di base

Può anche essere installato scaricando il codice sorgente e inserendolo in una directory del progetto. Tuttavia ci sono molti vantaggi nell'uso del compositore.

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);
 

Quando si crea una nuova istanza Twig_Environment , è possibile passare una matrice di opzioni come secondo argomento del costruttore. Ecco un elenco delle opzioni disponibili:

  • debug ( booleano , default false )

Se impostato su true, i modelli generati dispongono di un metodo __toString() che è possibile utilizzare per visualizzare i nodi generati.

  • charset ( string , default utf-8 )

Il set di caratteri utilizzato dai modelli.

  • base_template_class ( stringa , default Twig_Template )

La classe template di base da utilizzare per i modelli generati.

  • cache ( string o false , default false )

Un percorso assoluto in cui archiviare i modelli compilati o false per disabilitare la memorizzazione nella cache (che è l'impostazione predefinita).

  • auto_reload ( booleano , predefinito ereditato dal debug )

Quando si sviluppa con Twig, è utile ricompilare il modello ogni volta che cambia il codice sorgente. Se non si fornisce un valore per l'opzione auto_reload, verrà determinato automaticamente in base al valore di debug.

  • strict_variables ( boolean , default false )

Se impostato su false, Twig ignorerà silenziosamente le variabili non valide (variabili e / o attributi / metodi che non esistono) e li sostituirà con un valore nullo. Se impostato su true, Twig genera invece un'eccezione.

  • autoescape ( string o boolean , default true )

Se impostato su true, l'escape automatico in HTML sarà abilitato per impostazione predefinita per tutti i modelli.

A partire da Twig 1.8, è possibile impostare la strategia di escape da usare (html, js, false per disabilitare).

A partire da Twig 1.9, puoi impostare la strategia di escape da usare (css, url, html_attr, o un callback PHP che prende il template "nomefile" e deve restituire la strategia di escape da usare - la callback non può essere un nome di funzione da evitare collisione con strategie di fuga incorporate).

A partire da Twig 1.17, la strategia di escape del nome file determina la strategia di escape da utilizzare per un modello basato sull'estensione del nome file del modello (questa strategia non comporta alcun sovraccarico in fase di esecuzione poiché l'escape automatico viene eseguito in fase di compilazione).

  • ottimizzazioni ( intero , predefinito -1 )

Un flag che indica quali ottimizzazioni applicare:
set to -1 to enabled all optimalizations
set o 0 to disable all optimalitazations

Guida all'installazione ufficiale di Twig

Un'estensione PHP Twig (scritta in C) può anche essere compilata e installata, e il pacchetto PHP ne trarrà automaticamente vantaggio per l'ottimizzazione di alcune routine comuni.

introduzione

Se hai un'esposizione ad altre lingue template basate su testo, come Smarty , Django o Jinja , dovresti sentirti a casa con Twig . È sia designer che sviluppatore amichevole aderendo ai principi di PHP e aggiungendo funzionalità utili per gli ambienti di template.

Le caratteristiche chiave sono ...

  • Veloce: Twig compila i modelli fino al semplice codice PHP ottimizzato. Il sovraccarico rispetto al normale codice PHP è stato ridotto al minimo.
  • Sicuro: Twig ha una modalità sandbox per valutare il codice del modello non attendibile. Ciò consente a Twig di essere utilizzato come linguaggio modello per le applicazioni in cui gli utenti possono modificare il modello.
  • Flessibile: Twig è alimentato da un lexer e parser flessibile. Ciò consente allo sviluppatore di definire i propri tag e filtri personalizzati e di creare la propria DSL.

Twig è usato da molti progetti Open-Source come Symfony , Drupal , eZPublish e molti framework hanno anche il supporto per esso, come Slim , Yii , Laravel , Codeigniter , silex e Kohana - solo per citarne alcuni.

Installazione

Il modo consigliato per installare Twig è tramite Composer :

Per gli utenti di php 5.x.

composer require "twig/twig:~1.0"
 

Per gli utenti di php 7.x.

composer require "twig/twig:~2.0"
 

Cos'è Twig?

Twig è un linguaggio di template che compila per ottimizzare il codice PHP. Viene utilizzato principalmente per l'output di HTML, ma può anche essere utilizzato per generare qualsiasi altro formato basato su testo. È un componente standalone che può essere facilmente integrato in qualsiasi progetto PHP.

Offre molte caratteristiche eccellenti:

  • Autoescaping per HTML (aiuta a prevenire XSS)
  • Sintassi progettata tenendo a mente i modelli (basato sui modelli di Django)
  • Ereditarietà del modello
  • Macro

Documentazione ufficiale sui templari

Esempio di sintassi di 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 %}