twigDémarrer avec la brindille


Remarques

Cette section fournit une vue d'ensemble de ce qu'est la brindille et pourquoi un développeur peut vouloir l'utiliser.

Il devrait également mentionner tous les grands sujets dans la brindille et établir un lien avec les sujets connexes. La documentation de twig étant nouvelle, vous devrez peut-être créer des versions initiales de ces rubriques connexes.

Utilisation de l'API de base

Il peut également être installé en téléchargeant le code source et en le plaçant dans un répertoire de votre projet. Cependant, l'utilisation du compositeur présente de nombreux avantages.

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

Lors de la création d'une nouvelle instance Twig_Environment , vous pouvez passer un tableau d'options en tant que deuxième argument du constructeur. Voici une liste des options disponibles:

  • debug ( boolean , default false )

Lorsque la valeur est true, les modèles générés ont une __toString() que vous pouvez utiliser pour afficher les noeuds générés.

  • charset ( chaîne , default utf-8 )

Le jeu de caractères utilisé par les modèles.

  • base_template_class ( chaîne , Twig_Template par défaut)

La classe de modèle de base à utiliser pour les modèles générés.

  • cache ( string ou false , false )

Un chemin absolu pour stocker les modèles compilés, ou false pour désactiver la mise en cache (qui est la valeur par défaut).

  • auto_reload ( booléen , par défaut hérité de debug )

Lors du développement avec Twig, il est utile de recompiler le modèle chaque fois que le code source change. Si vous ne fournissez pas de valeur pour l'option auto_reload, celle-ci sera automatiquement déterminée en fonction de la valeur de débogage.

  • strict_variables ( booléen , valeur par défaut false )

Si la valeur est false, Twig ignore les variables non valides (variables et / ou attributs / méthodes qui n'existent pas) et les remplace par une valeur nulle. Lorsqu'il est défini sur true, Twig lève plutôt une exception.

  • autoescape ( chaîne ou booléen , true par défaut)

Si défini sur true, l'échappement automatique HTML sera activé par défaut pour tous les modèles.

A partir de Twig 1.8, vous pouvez définir la stratégie d'échappement à utiliser (html, js, false pour désactiver).

À partir de Twig 1.9, vous pouvez définir la stratégie d'échappement à utiliser (css, url, html_attr ou un rappel PHP prenant le modèle "nomfichier" et renvoyer la stratégie d'échappement à utiliser - le rappel ne peut pas être un nom de fonction à éviter collision avec des stratégies d'échappement intégrées.

À partir de Twig 1.17, la stratégie d'échappement de nom de fichier détermine la stratégie d'échappement à utiliser pour un modèle basé sur l'extension de nom de fichier du modèle (cette stratégie n'entraîne aucune surcharge au moment de l'exécution).

  • optimisations ( entier , par défaut -1 )

Un indicateur qui indique les optimisations à appliquer:
set to -1 to enabled all optimalizations
set o 0 to disable all optimalitazations

Guide d'installation officiel de la brindille

Une extension PHP Twig (écrite en C) peut également être compilée et installée, et le package PHP en profitera automatiquement pour optimiser certaines routines courantes.

introduction

Si vous êtes exposé à d'autres langages de modèles textuels, tels que Smarty , Django ou Jinja , vous devriez vous sentir comme chez vous avec Twig . Il convient aux concepteurs et aux développeurs en respectant les principes de PHP et en ajoutant des fonctionnalités utiles pour les environnements de création de modèles.

Les principales caractéristiques sont ...

  • Rapide: Twig compile les modèles jusqu'au code PHP simple et optimisé. La surcharge par rapport au code PHP standard a été réduite au minimum.
  • Sécurisé: Twig a un mode sandbox pour évaluer le code de modèle non approuvé. Cela permet d'utiliser Twig comme langage de modèle pour les applications dans lesquelles les utilisateurs peuvent modifier la conception du modèle.
  • Flexible: Twig est alimenté par un lexer et un analyseur syntaxiques flexibles. Cela permet au développeur de définir ses propres balises et filtres personnalisés et de créer son propre DSL.

Brindille est utilisé par de nombreux projets Open Source comme Symfony , Drupal , eZPublish et de nombreux cadres ont un soutien pour elle aussi comme Slim , , Laravel , CodeIgniter , Silex et Kohana - pour ne citer que quelques - uns.

Installation

La méthode recommandée pour installer Twig est via Composer :

Pour les utilisateurs de php 5.x

composer require "twig/twig:~1.0"
 

Pour les utilisateurs de php 7.x

composer require "twig/twig:~2.0"
 

Qu'est ce que Twig?

Twig est un langage de modélisation qui compile en code PHP optimisé. Il est principalement utilisé pour la sortie HTML, mais peut également être utilisé pour générer tout autre format texte. C'est un composant autonome qui peut être facilement intégré dans tout projet PHP.

Il offre de nombreuses fonctionnalités excellentes:

  • Autoescaping pour HTML (aide à prévenir XSS)
  • Syntaxe conçue avec des modèles à l'esprit (basée sur les modèles Django)
  • Héritage de modèle
  • Macros

Documentation officielle sur les modèles de brindilles

Exemple de syntaxe 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 %}