Pull to refresh

Шаблонизаторы

Reading time 2 min
Views 14K

В очередной раз подниму тему Template Engine в PHP. Боюсь, будет холивар…

Последнее время замечаю тенденцию, что начинающий PHP разработчик (скорбя сердцем скажу, что не только начинающий) считает своим долгом в каждый проект всунуть Smarty или иной Template Engine, а затем с пеной у рта доказывать, что это необходимо для разделения логики и отображения. Так вот — для начала Вы должны у себя в голове разделить логику от представления, а не вопить — «я смарти юзаю — я разделяю».

Еще одно заблуждение — верстальщик/дизайнер не понимает тэгов PHP, но Smarty он поймет — спросите у знакомых верстальщиков, особых трудностей они не испытывают при использовании PHP, и как пример могу привести Wordpress — уж очень много тем для него бродит по и-нету, и отнюдь не PHP разработчиками написанные.

Приведу пример из того же мануала по смарти:
  • {php} — Тэг {php} позволяет вставлять PHP-код прямо в шаблон. Конечно он не рекомендуется к использованию, но поломать «разделение» вполне может
  • {include_php} — Используются для подключения PHP-скрипта в шаблон, устарела функция, советуют для сего написать свою функцию для Smarty — вот такое простое решение для верстальщика

Еще один минус Smarty — это PHP4, который после 08.08.08 даже лататься не будет…

А то что IDE не дружат со Smarty и ему подобными — это меня просто бесит (даже если вы настроите подсветку, навигации по классам и функциям Вам не видать)

Какова же альтернатива? Посмотрите на Zend_View — красивая реализация шаблонизатора с нативным PHP синтаксисом.

P.S. Оглядываясь на свой предыдущий пост о рангах разработчиков, можно сие смапить на PHP:
  • Junior PHP Developer — восторженно изучает Smarty и еже с ними
  • PHP Developer — везде использует Smarty, но начинает что-то подозревать
  • Senior PHP Developer — пишет свой шаблонизатор, понимает в чем соль и возможно приходит к шаблонизатору аля Zend_View
  • Lead Developer — не задумывается о таких мелочах


Update:
  1. шаблонизатор — это всего лишь инструмент для разделения логики и отображения — если не понимать как орудывать сим инструментом — то ничего толкового не получиться
  2. используйте шаблонизаторы с нативным PHP синтаксисом (Zend_View приведен как пример такового)
Tags:
Hubs:
+17
Comments 195
Comments Comments 195

Articles