Русскоязычная документация по Twig - PHP шаблонизатору. Руководство по Твиг на русском языке
Twig как шаблонизатор по синтаксису чем-то похож на Smarty и не уступает в гибкости XSLT.
Основные его особенности:
Twig использует гибко настраиваемые лексический и грамматический анализаторы. Это позволяет разработчику определять свои теги и фильтры, создавать собственный DSL.
Краткость: Язык PHP многословен и даже слишком многословен, когда нужно экранировать вывод данных:
echo $var; echo htmlspecialchars($var, ENT_QUOTES, 'UTF-8');
Twig имеет более лаконичный синтаксис, который позволяет легко читать шаблоны:
{{ var }} {{ var|escape }} {{ var|e }} {# сокращение для escape #}
Ориентированный на шаблоны синтаксис: Twig имеет сокращения для многих общих паттернов, например, отображение текста по умолчанию, если вы перебираете пустой массив:
{% for user in users %} * {{ user.name }} {% else %} Пользователи не найдены. {% endfor %}
Полнофункциональный: поддерживает все, что необходимо для использования шаблонов: множественное наследование, блоки, автоматическое экранирование и многое другое:
{% extends "layout.html" %}
{% block content %} Содержимое страницы... {% endblock %}
Легок в изучении: Синтаксис прост в изучении и оптимален для верстальщиков, что позволяет им быстро выполнять свою работу.
Конечно, для PHP написано большое число шаблонизаторов. Но большинство из них написаны под PHP4 и не используют лучшие практики разработки:
Безопасность: В отношении безопасности, имеется несколько совершенно уникальных особенностей:
{% autoescape on %}...{% endautoescape %}
{{ include "user.html" sandboxed }}
Чистые сообщения об ошибках: Каждый раз, когда у вас возникают синтаксические ошибки в шаблоне, шаблонизатор выводит сообщение о имени файла с ошибкой и номере строки, которая ее вызвала. Это очень упрощает отладку.
Twig написан Fabien Potencier, создателем фреймворка Symfony и распространяется по новой лицензии BSD.