Twig (template engine)

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Original author(s) Fabien Potencier
Developer(s) SensioLabs
Initial release October 12, 2009 (2009-10-12)
Stable release 1.16[1] / July 5, 2014 (2014-07-05)
Development status Active
Written in PHP
Operating system Cross-platform
Type Template engine
License BSD License

Twig is a template engine for the PHP programming language. Its syntax originates from Jinja and Django templates.[2] It's an open source product[3] licensed under a BSD License and developed by Fabien Potencier. Symfony2 PHP framework comes with a bundled support for Twig as its default template engine.[4]


The example below demonstrates some basic features of Twig.

{% extends "base.html" %}
{% block navigation %}
    <ul id="navigation">
    {% for item in navigation %}
            <a href="{{ item.href }}">
                {% if 2 == item.level %}&nbsp;&nbsp;{% endif %}
                {{ item.caption|upper }}
    {% endfor %}
{% endblock navigation %}

Twig defines three kinds of delimiters:

  • {% ... %}, which is used to execute statements, such as for-loops.
  • {{ ... }}, which is used to print the content of variables or the result of evaluating an expression.
  • {# ... #}, which is used to add comments in the templates. These comments aren't included in the rendered page.


  • complex control flow
  • automatic escaping
  • template inheritance
  • variable filters
  • i18n support (gettext)
  • macros
  • fully extendable[2][5]

See also[edit]

  • Smarty
  • Twital, a template engine that compile its sources into Twig templates, adding some features as context-aware escaping, attribute-expression and creating more readable templates.


External links[edit]