Twig

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Twig
Тип

обработчик шаблонов

Автор

Armin Ronacher, Fabien Potencier

Разработчик

Fabien Potencier, Sensio Labs

Написана на

PHP

Первый выпуск

12 октября 2008

Последняя версия

1.18.0 (январь 2015)

Состояние

актуальное

Лицензия

BSD

Сайт

twig.sensiolabs.org

Twigкомпилирующий обработчик шаблонов с открытым исходным кодом, написанный на языке программирования PHP. Armin Ronacher написал Twig в 2008 году для платформы блогов Chyrp. Но больше не возвращался к разработке и больше занимался разработкой на Python. Синтаксис языка шаблонов Twig берёт начало от движков шаблонов Jinja и Django, также созданных им. Идею данного шаблонизатора развивает и поддерживает Fabien Potencier, ведущий разработчик и идеолог фреймворка Symfony, в котором Twig используется по умолчанию.

Сам Fabien Potencier рассказывает о нем:

Когда я приступил к поиску PHP шаблонизатора, я сосредоточился на библиотеках копирующих поведение Django. Спустя несколько часов «гугления» был найден Twig. Его автором является Armin Ronacher, известный по проекту Jinja (шаблонизатор для Python). Несомненно я испытываю крайнее уважение к Армину за его замечательную работу над Jinja. Twig скорее похож на Jinja, чем на Django, как описано в реализации. Когда я взглянул на код, я сразу понял что это то что я ищу. Главное отличие от Calypso в том что Twig компилирует шаблоны в обычный PHP-код. Я начал использовать эту библиотеку и в конце этой недели спросил у Армина не желает ли он дать своему проекту новую жизнь. Его ответ был полон энтузиазма, и я приступил к изучению кода. Моя версия сильно отличается от версии Армина, но «лексер» и «парсер» практически оригинальные. Я потратил всего несколько дней на работу над кодом, но я уже горжусь результатом и думаю что пора показывать библиотеку публично. Вчера я написал документацию и сделал простой сайт. Осталось еще много работы: закончить документацию, добавить тесты и PHPDoc; но код уже целостен и функционален: Встроенное наследование шаблонов (шаблоны компилируются как классы) Автоматическое экранирование (отсутствие дополнительное время на запуск — все делается во время компиляции) Очень безопасный режим «песочницы» (список допустимых тегов, фильтров и методов которые разрешены в шаблоне) Расширяемость: вы можете переписавать все что угодно, даже функции ядра, написав расширение; так же можно манипулировать AST (Abstract Syntax Tree) (?) перед компиляцией. Используя эти возможности вы можете создать даже свой собственны язык — DSL (Domain Specific Language), ориентированный на ваше приложение. Несмотря на то что Twig самый функциональный шаблонизатор, он еще и самый быстрый.

Перевод статьи из личного блога

См. также[править | править вики-текст]

Ссылки[править | править вики-текст]