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