Механизм шаблонов smarty

Март 27, 2008 / Автор sowich / Рубрики Программинг / Ответ

При разработке того или иного интернет проекта очень часто бывает необходимо использовать шаблонизатор. Здесь я не буду рассматривать и делать обзор по шаблонизаторам а просто постараюсь раскрыть в общих чертах один из них. Имя нашего героя – Smarty. Лично я давно использую данную систему шаблонизации и очень доволен. Конечно, для новичков он будет немножко сложноват для начала, поэтому я рекомендую начать с более простой и понятной системы. Вообще, можно привести вот такое высказывание по поводу назначению и использованию шаблонов:

В РНР наиболее общим способом отделения логики представления от логики приложения является использование шаблонов. Шаблон (template) — это в общем случае HTML-документ, который содержит специальные маркеры и/или управляющие структуры. Фактически, РНР был изначально разработан как простой макроязык, функционирующий подобно механизму шаблонов.

Очень удобно отделять код php и код страницы. В шаблон вы вставляете только лишь определенные куски код, который должен впоследствии обработать обработчик и сгенерировать «на лету» html пагу.

Smarty — это необычайно мощная и сложная система шаблонов, доступная разра-
ботчикам РНР. Возможно, это наилучшее универсальное базовое решение из когда-
либо существующих, которое разделяет логику представления и логику приложения
без принесения в жертву удобства и практичности. Несмотря на то что она функцио-
нирует как полный сценарно-шаблонный язык, применение этой функциональности
не является обязательным.  Мое представление о шаблонах состояло в том, что их назначение — избавить Web-дизайнера от путаницы в коде РНР. Мне казалось, что, несмотря на то, что Smarty может отделить РНР от HTML, это решение требует от Web-дизайнеров изучать полностью самостоятельный «сценарный» язык Smarty.

Пожалуй, более всего меня поразило то, что он быстр — быстрее любого другого механизма шаблонов РНР!

Как же механизм шаблонов Smarty делает это? Он использует уникальную (по
крайней мере, есть такая информация) концепцию — компилирует шаблоны в родной PHP-код. Таким образом, когда шаблон загружается в первый раз, Smarty сначала компилирует его в PHP-сценарий, который сохраняется, а затем выполняет этот код шаблона. Это делает шаблоны почти настолько же быстрыми, как и сам РНР, а также невероятно масштабируемыми. В довершение ко всему этот механизм построен таким образом, что его управляющие конструкции конвертируются непосредственно в РНР-код, представляя им всю мощь и гибкость их эквивалентов на РНР, избегая, любых сложностей.

Комментарии закрыты.