- порог входа слишком разный
Зато одноразовый, так как XSLT - стандарт, и рано или поздно можно будет найти верстальщика, знающего XSLT. Попробуйте нати верстальщика под MACRO.
Код:
<?php if($data['some_var'] instanceof chapter) { ?>
{{include file="chapter.phtml"}}
<?php } ?>
Зачем? Зачем представлению знать о каком то наследовании, которое относится к слою модели?
Пример был приведен как приблизительная аналогия коду:
Код:
<xsl:template match="chapter">
<fo:block>
<xsl:apply-templates/>
</fo:block>
</xsl:template>
что бы указать на то, что "chapter", является типом, а не конкретной переменной, то есть "chapter" более абстрактное, более низкоуровневое понятие, а уже шаблон для этого "chapter" находиться на уровне приложения, который, к тому же, можно переопределить. В PHP шаблонизаторах нет таких возможностей (я не говорю что их нельзя реализовать).
а include, функции и методы не абстракции?
Являются, но не теми, которые необходимы шаблонизатору.
Event Driven это конечно хорошо, но лучшая PHP-реализация с которой приходилось сталкиваться - Prado, оставила после себя очень неприятный осадок over engineering'а и грязных хаков, для реализации функциональности, которую не предусмотрели ее создатели.
Ну ты же понимаешь что плохая реализация не является критерием оценки самого подхода...
И давно ты пользуешься xslt?
Я давно пользуюсь. А до того как начал пользоваться тоже писал шаблонизатор, который можно увидеть в
PHP_Application. Шаблонизатор очень простенький и поместился всего в одном
файле, но тем неменее в нём заложены большие возможности, делающие его достаточно гибким. Однако после некоторого времени разработки понял, что иду по пройденному пути XSLT, после чего окончательно перешёл на него, хотя и его возможностей уже не хватает.