Введение
Язык PHP в первую очередь был создан как интерпретатор шаблонов, поэтому шаблонизация собственно является изначальным предназначением языка. Таким образом, PHP является простым, быстрым и очень гибким решением для шаблонизации. Синтаксис верстки для PHP-шаблонизатора полностью повторяет синтаксис языка PHP.
Внимание!
PHP-шаблонизатор рассчитан на опытных разработчиков, которые знакомы с XSS-уязвимостями. Все данные в шаблоне доступны в "сыром" виде, для обеспечения максимальной производительности и простоты шаблонизатора. Разработчик самостоятельно должен заботиться об экранировании данных, которые поступают от пользователей сайта на этапе вывода в шаблоне. Для этого необходимо задуматься, поступают ли выводимые данные с пользовательских форм на сайте или доступны для редактирования только через административный интерфейс.Если вы не уверены в своих способностях или не хотите об этом думать, мы рекомендуем рассмотреть вариант использования XSLT-шаблонизатора, где все выводимые переменные в шаблоне по умолчанию экранированы.
Преимущества использования PHP-шаблонизатора
-
выросшее быстродействие, ваш сайт будет работать в два раза быстрее
-
возросшая доступность технологии, для построения ваших решений при использовании нового шаблонизатора потребуются только специалисты php, которых значительно проще найти на рынке
-
время разработки типового проекта с использованием PHP-шаблонизатора в два раза меньше по сравнению с временем разработки аналогичного решения с использованием XSLT
-
более широкая возможность кастомизации шаблонов
Структура PHP-шаблонизатора
В общем случае PHP-шаблон представляет собой скрипт на языке php, в котором путем последовательного вызова макросов системы получаются данные из которых формируется html страница сайта.
Схема работы шаблонизатора:
UMI.CMS получает запрос от браузера на отображение странцы. UMI.CMS делает необходимые запросы в БД и отдаёт данные на шаблонизацию. В отличии от xslt-шаблонизатора нет этапа преобразования данных в xml (UMI Data), что существенно экономит время. В шаблон приходят данные в виде массивов и объектов, которые можно итерировать и выводить привычным для всех способом.