Шаблонизаторы для PHP

Здесь я соберу известные мне шаблонизаторы для PHP. Они бывают двух типов: написанные на PHP и написанные на чём попало, но скомпиленные в виде модуля к самому PHP.  Теоретически, вторые должны быть в разы быстрее первых. Итак:

Модули PHP:

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

PHP-код:

  1. Smarty
  2. XTemplates
  3. Perl HTML::Template

 Немного бенчмарков:

  • С сайта автора Blitz

    lebowski-bench-small1.png

Leave a comment

Please be polite and on topic. Your e-mail will never be published.

You must be logged in to post a comment.