Шаблонизаторы для PHP
Здесь я соберу известные мне шаблонизаторы для PHP. Они бывают двух типов: написанные на PHP и написанные на чём попало, но скомпиленные в виде модуля к самому PHP. Теоретически, вторые должны быть в разы быстрее первых. Итак:
Модули PHP:
- CTPP. Если говорить коротко, то CTPP (CT++, Сити Плас Плас) – это инструмент, отделяющий процесс обработки данных (бизнес-логику) от их представления. Для проектов, в которых программист и HTML верстальщик – разные люди, CT++ – самый подходящий выбор.
Библиотека CTPP действительно работает очень быстро, поскольку полностью написана на языке C++. В отличие от шаблонизаторов, разработанных на интерпретируемых языках, таких как PERL или PHP, CTPP не тратит время на интерпретацию исходного кода самой себя и не занимается подгрузкой среды исполнения.
В тоже время, библиотека быстрее широкоизвестных проектов типа Xalan-C или libxslt потому, что не предоставляет излишнюю, зачастую ненужную, но снижающую производительность функциональность.
Есть НЕПРОВЕРНЕННАЯ информация, что по “бенчмаркам” уступает всем из первого эшелона – blitz, php_templates, smarty, google ctemplate. - Blitz. Blitz родился весьма неоригинально, for fun. Blitz поддерживает разделение и скрытие функционально различных частей шаблонов с помощью простого механизма: текст шаблона может содержать вызов методов объекта, который этим шаблоном управляет. Таким образом, достигается основная цель: шаблон не содержит большого количества блоков и контекстов, часто мешающих разобраться, что к чему. Напротив, даже в проекте со сложной логикой представления при правильном подходе шаблоны будут давать разработчику своеобразную «карту» всего проекта. Blitz также позволяет включать одни шаблоны в другие (аналог include) и поддерживает условный вывод переменных (аналог if).
Начиная с версии 0.4 в Blitz добавлен функционал движка php_templates. - php_templates. В php_templates вы совершенно точно НЕ найдете какой-либо подвид скриптового языка в шаблоне. Как уже было сказано ранее, шаблоны предназначены для отделения кода от дизайна. Вот почему любой вид логики в шаблоне идет вразрез с идеологией шаблонов. Несмотря на это, почти в каждом сообществе веб-разработчиков продолжаются споры по вопросу использования программного кода в шаблонах. На самом деле, этот вопрос уже давно перерос в нечто религиозное. В конце концов, есть масса проектов со своим собственным скриптовым языком в шаблонах, на которые вы можете перейти. Однако, они не слишком-то и быстрые.
PHP-код:
- Smarty
- XTemplates
- Perl HTML::Template
Немного бенчмарков:
- С сайта автора Blitz
