Шаблоны в php - за и против
В настоящее время написано много шаблонизаторов. Многие php-программисты, думаю, слышали о SMARTY, FastTemplate и иже с ними. У каждого из шаблонизаторов свои особенности, но все они созданы для решения задачи “разделения контента и дизйна“.
Сущность шаблонизатора: дизайн “размещается” в отдельных файлах. В тексте файлов-шаблонов встречаются оформленные по определенным правилам последовательности символов, вместо которых должны подставляться данные. Некоторые “продвинутые” шаблонизаторы позволяют использовать циклы, условные конструкции и вставки кода на PHP.
Возникает вопрос, “А зачем?”. И, думаю, не безосновательно. Ведь PHP позволяет делать всё это. Парадокс? Авторы шаблонизаторов пытаются при помощи интерпретатора PHP создать свой интерпретатор, и считают, что это необходимо, хорошо, ну или просто… неплохо. Проделана огромная работа, потрачены часы, дни, месяцы.. Неужели, всё это зря!?
Попытаемся оправдать применение шаблонизатора.
1. Гораздо проще и понятнее писать {TITLE} нежели <?=$TITLE?> .
Для человека, который имеет представление о PHP, естественно, второй вариант вполне понятный. Если же человек только познакомился с HTML, то, ему “сложно” вместо двух фигурных скобочек ставить целых шесть символов. Не знаю, как объективно… Но по-моему, бред.
2. Используя возможности кеширования шаблонов, мы повышаем производительность.
Ну да. Сначала подгружаем модуль класса шаблонизатора, затем проверяем, есть ли уже кешированный обработанный файл шаблона, если есть, то подключаем и его. Если же нету, то к тому же читаем файл шаблона, обрабатываем его и сохраняем в каталоге с кэшами.
А <?=$var?>, например, значит, выполнится гораздо медленнее?
Без шаблонов всё это можно утрамбовать в один файл. Чтобы сделать более понятным, можно разделить логику работы по файлам и подгружать при необходимости. При желании, часть данных условно-постоянных (например, дерево каталогов из базы данных) можем сохранять в файл.
В итоге, хочу отметить, что использование шаблонов - это право лично каждого. И мнений может быть множество. Лично я считаю, что лучший шаблонизатор - это сам PHP.
Сам отказался от использования шаблонов. Хотя довольно долгое время пытался как-то сам для себя оправдать их.