Антон Шевчук // Web-разработчик

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

В очередной раз подниму тему 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 – не задумывается о таких мелочах

© Антон Шевчук 2007-2017