Скачать справочник по MySQL

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

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

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

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

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

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

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

Отзывов (9)

  1. Антон Копнев пишет:

    Так всё же со Smarty сайт будет работать медленнее чем без него?

  2. sowich пишет:

    Дак смаря ведь как сделать. В каких то случаях быстрее в каких то медленее. Смарти не идеал, тут спорный вопрос и нужно подходить к нему при разработке кмс. Если сайт из 20 страничек(динамических), то разумеется нет смысла использовать смарти, а если например 5 000 то возможно стоит задуматься. Да вапще много же есть аналогий смарти, здесь я описал один из самых известных и тот который я использую в большинстве случаем. Лучше он или хуже подобия тут сугубо личный выбор каждого :)

  3. Евгений пишет:

    Интересно, а существуют ли визуальные редакторы для работы со смарти? Прикольно было бы - а то я тут столкнулся… И глаза побежали в разные стороны… Штука удобная и быстрая, но вот не каждому по зубах!

  4. работа казань менеджер пишет:

    Спасибо за информацию. Может, подскажете где еще почитать?

  5. Матрешкин пишет:

    Я тут впервые, но мне очень понравилось.

  6. Диман пишет:

    Да, инет - он не маленький, если и такое можно найти ;)

  7. регистрация ооо пишет:

    О! Интересно интересно

  8. Ирен пишет:

    Хороший блог :) Люблю почитывать каждую ночь (ну и в другое время тоже :)).

  9. Егор Рязанцев пишет:

    Премного благодарен! Буду теперь заходить на этот блог почаще! :)

Оставьте свой комментарий

Внимание: Осуществляется проверка комментариев, это может отсрочить публикацию, отправлять сообщение повторно нет необходимости.