RomikChef:
Макс, Сергей, вы не хотите высказаться? Жалко...
Ну что вам написать ?
Я довольно долго использовал и шаблонизатор и чистый ПХП, сейчас изучаю XSLT.
ИМХО,
все 3 способа вполне примелемы и отличаются лишь мелочами, которые для кого-то
имеет значение, а для кого-то нет.
Например, я считаю, что в шаблоне должны быть доступны только те данные,
которые разрешил программист (это мое требование, которое никому не навязываю).
То есть если есть шаблон
<!-- some template -->
<b><?=$name;?></b>
то в нем не должны быть доступны переменным типа $db_login (логин доступа к БД).
В ПХП отделить пространство имен можно лишь двумя способами : помещение кода в функцию или класс (обычный include не подойдет).
Далее, мне при отладке удобно, что в шаблоне нет ПХП-кода.
Любые ПХП-ошибки (warning-и, notice-ы) надо искать именно в коде, а не в шаблоне.
Когда используешь шаблонизаторы, то любые ПХП-ошибки в броузер аккуратно выводятся сверху, а потом идет ХТМЛ-код (дизайн).
Но и классически шаблонизаторы меня не устраивают.
Причина, код скрипта кишит всякими :
$tpl->addBlockFile(\'content\', \'cb\', \'tth_list.html\');
if ($amount) {
$tpl->setCurrentBlock(\'row\');
while($list->isValid()) {
$thread= & $list->get();
$tpl->setVariable(array(
\'thread_id\' => $thread->id,
\'message\' => $thread->getMessage(),
\'subject\' => $thread->getSubject(),
));
$tpl->parseCurrentBlock();
$list->next();
}
} else {
$tpl->touchBlock(\'no_row\');
}
$tpl - это объект шаблонизатора.
Очень часто, если убрать всю работу с шаблонами, то скрипты оказываются очень
похожими, почти идентичными (это к вопросу о повторном использовании кода).
Поэтому я склоняюсь к использовнию шаблонизаторов, у которых шаблон имеет логику.
Выбор тут невелик - Smarty/XSLT/чистый PHP (Я склоняюсь к XSLT)
Противники таких шаблонов говорят что в шаблоне не должно быть никакой логики,
что они должны быть как можно более простыми.
1. Начнем с логики.
Логику в приложении можно разделить на 2 части: бизнес-логика (логика обработки данных) и логика представления (логика дизайна).
Так вот, верстальщик ДОЛЖЕН знать о логике представления. И он должен уметь управлять логикой представления.
Все что касается внешнего представления можно доверить верстальщику.
2. По поводу простоты шаблона.
Верстальщик должен быть таким же профи как и программист, только профи в своей области, в верстке.
Иначе пусть ищет другую работу.
Свое мнение не навязываю и не обсуждаю, хотя если есть вопросы - отвечу.