Twig est un moteur de template flexible par cross-pateforme.

Information :

  • Son auteurs est Armin Ronacher
  • L’entreprise de développement est SensioLabs
  • Sa première version date du 12 octobre 2009, dont sa version stable 1.24.0 du 26 janvier 2016
  • Sous licence BSD

Qu’est ce ?

Tiwg est un moteur de template flexible, rapide et sécurisé, il utilise PHP comme langage de programmation. Sa syntaxe est similaire à Smarty, Jinja et Django template. Il est produit en open source donc on le retrouve facilement sur github sous licence BSD. Il est aussi à la fois concepteur et développeur amical en collant aux principes de PHP et à l’ajout de fonctionnalités utiles pour les environnements de templates.

À savoir

Twig a besoin de PHP 5.2.7 pour fonctionner correctement. Ses caractéristique sont la rapidité, puis ce qu’il compile des modèles de code PHP optimisé. Il est fixe par son mode sandbox qui évalue le code du modèle en untrusted. Cela permet à Twig d’être utilisé comme un langage de template pour les applications où les utilisateurs peuvent modifier la conception du modèle. il est aussi flexible par son alimentation d’un lexer analyseur et souple. Cela permet au développeur de définir leurs propres balises et les filtres personnalisés, et de créer leur propre DSL.

Twig est utilisé par de nombreux projets Open-Source comme Symfony, Drupal8, eZPublish, phpBB, Piwik, OroCRM; et de nombreux cadres bénéficient d’un soutien pour elle aussi comme Slim, Yii, Laravel, Codeigniter et Kohana – pour ne citer que quelques-uns.

Caractéristiques

  • flux de contrôle complexe
  • escaping automatique
  • héritage modèle
  • filtres variables
  • support i18n (gettext)
  • macros
  • entièrement extensible

Fonctionnalités

Twig Template Designers

définition de trois types de délimiteurs:

{% …%}, Qui est utilisé pour exécuter des instructions, telles que par-boucles.
{{…}}, Qui est utilisé pour imprimer le contenu de variables ou le résultat d’une évaluation d’une expression.
{# … #}, Qui est utilisé pour ajouter des commentaires dans les modèles. Ces commentaires ne sont pas inclus dans la page rendue.

Exemple :

{% set foo = 'foo' %}
{% set foo = [1, 2] %}
{% set foo = {'foo': 'bar'} %}


{{ foo.bar }}
{{ foo['bar'] }}


{# equivalent to the non-working foo.data-foo #}

Twig Template Developers

Le côté développeur est fait pour la création de l’environnement de l’API, la création de router et de loade. Le code reste du PHP constituer de booléen, chaîne.

exemple :

Créer votre propre Loader

interface Twig_LoaderInterface
{
/**
* Gets the source code of a template, given its name.
*
* @param string $name string The name of the template to load
*
* @return string The template source code
*/
function getSource($name);

/**
* Gets the cache key to use for the cache for a given template name.
*
* @param string $name string The name of the template to load
*
* @return string The cache key
*/
function getCacheKey($name);

/**
* Returns true if the template is still fresh.
*
* @param string $name The template name
* @param timestamp $time The last modification time of the cached template
*/
function isFresh($name, $time);
}