Это документация Twig, быстрого, гибкого и безопасного шаблонизатора для PHP.
Если у вас уже был опыт работы с шаблонизаторами, такими как Smarty, шаблонизатор в Django или Jinja, вы очень легко раберетесь с Twig. Он дружественен как верстальщику, так и программисту, следует принципам PHP и содержит полезный функционал для создания шаблонов.
Главные особенности:
Быстрый: Twig компилирует шаблоны в оптимизированный PHP код. Использование памяти по сравнению с обычным PHP кодом сведено к минимуму.
Безопасный: Twig имеет режим "песочницы" для оценки "ненадежного" кода в шаблонах. Это позволяет использовать Twig в приложениях, где пользователи могут менять содержимое шаблонов.
Гибкий: Twig использует гибко настраиваемые лексический и грамматический анализаторы. Это позволяет разработчику определять свои теги и фильтры, создавать собственный DSL.
Twig работает под PHP 5.2.4 и выше.
У вас есть несколько способов установить Twig. Если вы не знаете, что именно выбрать - скачайте архив.
svn co http://svn.twig-project.org/trunk/ twigЭтот подраздел содержит краткое описание того, как использовать 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');