Ответ
G_Z 09.10.2015 22:48
Ну, Парсер, как язык, погружённый в код, сам по себе прекрасный шаблонизатор.
А вот в сравнении с велосипедами в других языках лично мне XSLT нравится гораздо больше.
Он несколько громоздкий синтаксисом, но это издержки его разметочной природы и к тому быстро привыкаешь.
В некоторой степени прожорлив до памяти, но это из-за DOM-модели, которая даёт огромную гибкость.
XPath и вовсе мега-инструмент, позволяющий делать очень гибкие выборки из переданных в шаблон данных.
В конце-концов любой well-formed-документ можно использовать как трансформируемый исходник и делать разнообразные пост-преобразования без ковыряния с разбором HTML на части.
Для подхода «пассивный шаблон» он — то, что нужно.
Все данные есть в XML, и шаблонизатор занимается строго их выводом и форматированием.
Лично мне больше нравится «активный шаблон», когда часть логики выносится в шаблоны и они запрашивают по мере необходимости данные у контроллера.
Нечто похожее есть в UMI.CMS, если мне память не изменяет.
С XSL обычно используется довольно архаичный подход к генерации лайаута страницы, который заключается в километровых условиях и жёстких вариантах.
На мой взгляд, это издевательство над гибкостью XSLT и отказ от преимуществ наследования и переопределения шаблонов.
Альтернативой сделал
XSL-Layout.
Если в Парсере упростится работа с обработчиками вызовов из XSL, то можно будет сделать вполне активный шаблон.
Где в шаблоне будет визуальная логика, а бизнес-логикой будет заниматься контроллер, например на
PF.