a Sensio Labs Product

Гибкий, быстрый и безопасный
шаблонизатор для PHP

Введение

Это документация Twig, быстрого, гибкого и безопасного шаблонизатора для PHP.

Если у вас уже был опыт работы с шаблонизаторами, такими как Smarty, шаблонизатор в Django или Jinja, вы очень легко раберетесь с Twig. Он дружественен как верстальщику, так и программисту, следует принципам PHP и содержит полезный функционал для создания шаблонов.

Главные особенности:

  • Быстрый: Twig компилирует шаблоны в оптимизированный PHP код. Использование памяти по сравнению с обычным PHP кодом сведено к минимуму.

  • Безопасный: Twig имеет режим "песочницы" для оценки "ненадежного" кода в шаблонах. Это позволяет использовать Twig в приложениях, где пользователи могут менять содержимое шаблонов.

  • Гибкий: Twig использует гибко настраиваемые лексический и грамматический анализаторы. Это позволяет разработчику определять свои теги и фильтры, создавать собственный DSL.

Системные требования

Twig работает под PHP 5.2.4 и выше.

Установка

У вас есть несколько способов установить Twig. Если вы не знаете, что именно выбрать - скачайте архив.

Установка из архива

  1. Скачайте последний архив со страницы скачивания
  2. Распакуйте его
  3. Переместите файлы в ваш проект

Установка версии для разработчика

  1. Установить Subversion
  2. svn co http://svn.twig-project.org/trunk/ twig

Установка PEAR пакета

  1. Установить PEAR
  2. pear channel-discover pear.twig-project.org
  3. pear install twig/Twig (or pear install twig/Twig-beta)

Основы использования API

Этот подраздел содержит краткое описание того, как использовать Twig.

Во-первых, надо зарегистрировать загрузчик Twig:

require_once '/path/to/lib/Twig/Autoloader.php';
Twig_Autoloader::register();

Замените /path/to/lib/ на путь к установленному Twig.

Twig следует PEAR соглашениям в названии классов, что позволяет легко интегрировать классы Twig в ваш загрузчик.

$loader = new Twig_Loader_String();
$twig = new Twig_Environment($loader);
 
$template = $twig->loadTemplate('Привет {{ name }}!');
 
$template->display(array('name' => 'Алексей'));

Twig предоставляет классы (Twig_Loader_String) для загрузки шаблона из строки и (Twig_Environment) для хранения конфигурации.

Метод loadTemplate() загружает шаблон и возвращает объект Twig_Template, который можно отобразить с помощью метода display().

Так же можно загрузить шаблон из файла:

$loader = new Twig_Loader_Filesystem('/path/to/templates');
$twig = new Twig_Environment($loader, array(
  'cache' => '/path/to/compilation_cache',
));
 
$template = $twig->loadTemplate('index.html');