Шаблонизатор Smarty: что это?

      Smarty — довольно распространенный инструмент веб-программирования. Более того, изучающим сайтостроение для начинающих полезно будет узнать, что это, так сказать, промышленный стандарт шаблонной системы, использующей в своей работе кэширование. Понимающий основы сайтостроения может создать самую простую шаблонную систему самостоятельно и разместить ее на хостинге. Однако если проект разрастется, то скорость выполнения собственной такой системы будет оставлять желать лучшего. У Smarty же есть определенные преимущества, позволяющие не только ускорить работу проекта. Кроме того, под Smarty создан чуть ли не целый язык веб-программирования с собственными функциями, модификаторами, константами. Однако не стоит забывать, что это всего лишь уровень абстрактной надстройки над PHP, также как и сам PHP — абстрактный уровень над C, необходимый для упрощения разработки.

основы сайтостроения: smarty — движок шаблонов

 

«Компилирующий» шаблоны

 

     Желающие изучить сайтостроение для начинающих, часто о Smarty говорят как о компилирующем шаблоны. Однако, скорее всего, здесь есть небольшое недоразумение. В программировании есть термин «компиляция», определенный как транслирование исходного кода, написанного на высокоуровневом языке программирования, в низкоуровневые инструкции, понятные процессору. В процессе компиляции выделяют ряд этапов: прекомпиляция, трансляция, ассемблирование и линковка.

    Понимающие основы сайтостроения знают, что Smarty занимается далеко не данными процедурами, а лишь единожды анализирует шаблон и собирает связанные с ним PHP-сценарии, подставляя, где необходимо, данные в этот шаблон. При этом происходит обязательная проверка на предмет осуществленного ранее анализа. Если шаблон еще не вызывался, но поступил запрос на его вызов, то Smarty создаст необходимую страничку на основе вызываемого шаблона. Если же шаблон уже вызывался, но в нем произведены какие-то изменения, то Smarty придется выполнить повторный анализ и повторную сборку шаблона или «перекомпиляцию». Недоразумение со словом компиляция в данном случае может происходить из-за глагола «to compile», который также обозначает глаголы «составлять», «собирать» или «накапливать».

   Однажды составленный шаблон («скомпилированный») кэшируется шаблонизатором, что позволяет в разы увеличить производительность статической страницы, созданной на основе шаблона. Для созданных копий страниц в кэше можно задавать срок хранения, как и для других объектов со статическим содержимым. После истечения этого срока копия шаблона может быть регенерирована или обновлена.

 

сайтостроение для начинающих: типичный шаблон со Smarty-тэгами

Отделение логики от представления

 

      Желающим изучить сайтостроение для начинающих любопытно будет знать, что главной функцией шаблонизатора Smarty, по сообщению его создателей, является отделение логики обработки данных веб-приложения от их представления в сети. На сайте разработчика в категории «What is Smarty?» размещено следующее объяснение для чего собственно создан Smarty: «Smarty is a template engine for PHP, facilitating the separation of presentation from application logic». Таким образом, чтобы знать основы сайтостроения на Smarty, следует знать, что Smarty — это движок шаблонов для PHP, предоставляющий удобные средства для отделения представления данных от логики их обработки приложением. Поэтому данный движок позволяет отделить исходный код, написанный на PHP, от страницы с гипертекстовой разметкой. Такой подход позволяет отделить труд программиста от труда верстальщика. Но вместе с тем Smarty не есть MVC, что возможно и оправдывает ту свободу, которую предоставляет этот шаблонизатор для кода, встраиваемого в шаблоны с помощью тэгов.

Smarty-тэги

 

   Smarty значительно шире смотрит на отделение логики от представления, чем другие аналогичные концепции. Он не только позволяет подставлять в шаблоне вместо тэгов данные, но еще и обогащает это представление возможностью реализации некоторой логики в самом шаблоне. Желающим изучать сайтостроение для начинающих любопытно будет знать, что этот момент вызывает широкие споры относительно этого шаблонизатора, который становится объектом постоянной критики сторонников четкого разделения труда. Smarty же значительно расширяет разметку HTML, предлагая добавлять к ней Smarty-тэги, у которых есть собственный синтаксис и среди которых есть даже самые простые конструкции, пришедшие из структурного программирования — например, тэг {if}.

 

основы сайтостроения: PHP-скрипт со Smarty

Smarty — «обогащенный» движок шаблонов

 

   Итак, шаблонизатор Smarty призван отделить логику приложения от представления данных. Однако в нем нельзя искать модель MVC. Он предоставляет разработчику большую свободу действий, предлагая расширить HTML-разметку специальными Smarty-тэгами, которые предоставляют некоторую логику. Но в этой логике следует видеть, скорее, реализацию логики представления. В этом отношении Smarty конкурирует с XML/XSLT, но у шаблонизатора есть ряд преимуществ. Если XSLT, например, это декларативная разметка, то Smarty — это PHP-код. Кроме того, Smarty-тэги значительно легче изучить тем, кого интересуют основы сайтостроения, чем XSLT.

   Важным преимуществом шаблонизатора является быстрота его работы. Однажды составленный шаблон копируется в кэш, откуда эта копия постоянно извлекается для представления страницы. Вносимые в шаблон изменения вынуждают Smarty «перекомпилировать» копию шаблона и внести в нее необходимые изменения.

    В одной из недавних статей мы говорили о том что такое ООП и зачем веб-программисту знать эту методологию. Об этом можно почитать тут.

Последние комментарии
Последние оценки
Спонсорский раздел

Последние свежие отзывы о статье "Шаблонизатор Smarty: что это?"

Комментарии отсутствуют, станьте первым и расскажите другим, что вы думаете!
Внимание! Комментировать и оценивать материалы могут только зарегистрированные пользователи
Добавлено 05.11.2014 в Статьи
Это интересно? А теперь сделай приятно своим друзьям, поделись всего в один клик

Вверх