Логотип

Документация по макросам и шаблонам UMI.CMS

Введение

Язык PHP в первую очередь был создан как интерпретатор шаблонов, поэтому шаблонизация собственно является изначальным предназначением языка. Таким образом, PHP является простым, быстрым и очень гибким решением для шаблонизации. Синтаксис верстки для PHP-шаблонизатора полностью повторяет синтаксис языка PHP.

Внимание!

PHP-шаблонизатор рассчитан на опытных разработчиков, которые знакомы с XSS-уязвимостями. Все данные в шаблоне доступны в "сыром" виде, для обеспечения максимальной производительности и простоты шаблонизатора. Разработчик самостоятельно должен заботиться об экранировании данных, которые поступают от пользователей сайта на этапе вывода в шаблоне. Для этого необходимо задуматься, поступают ли выводимые данные с пользовательских форм на сайте или доступны для редактирования только через административный интерфейс.Если вы не уверены в своих способностях или не хотите об этом думать, мы рекомендуем рассмотреть вариант использования XSLT-шаблонизатора, где все выводимые переменные в шаблоне по умолчанию экранированы.


Преимущества использования PHP-шаблонизатора

  1. выросшее быстродействие, ваш сайт будет работать в два раза быстрее

  2. возросшая доступность технологии, для построения ваших решений при использовании нового шаблонизатора потребуются только специалисты php, которых значительно проще найти на рынке

  3. время разработки типового проекта с использованием PHP-шаблонизатора в два раза меньше по сравнению с временем разработки аналогичного решения с использованием XSLT

  4. более широкая возможность кастомизации шаблонов


Структура PHP-шаблонизатора

В общем случае PHP-шаблон представляет собой скрипт на языке php, в котором путем последовательного вызова макросов системы  получаются данные из которых формируется html страница сайта.

Схема работы шаблонизатора:

Структура PHP-шаблонизатора


UMI.CMS получает запрос от браузера на отображение странцы. UMI.CMS делает необходимые запросы в БД и отдаёт данные на шаблонизацию. В отличии от xslt-шаблонизатора нет этапа преобразования данных в xml (UMI Data), что существенно экономит время. В шаблон приходят данные в виде массивов и объектов, которые можно итерировать и выводить привычным для всех способом.