Вышла (http://community.livejournal.com/ru_highload/35798.html?styl...) полностью переработанная версия шаблонизатора CTPP (http://ctpp.havoc.ru/), распространяемого под BSD-подобной лицензией. Шаблонизатор представляет собой инструмент, отделяющий процесс обработки данных (бизнес-логику) от их представления. Кредо проекта: достижение максимального быстродействия при минимальном необходимом функционале. CTPP успешно используется в ряде высоконагруженных проектов ведущих IT-компаний России и мира.
Библиотека написана на языке C++ и имеет интерфейс для языков C, C++, Perl5, PHP4 и PHP5. Имеется поддержка синтаксиса Smarty, HTML::Template или Text::Template.
На данный момент для скачивания доступна преальфа модуля для Python, общественно-доступная поддержка Perl и PHP планируется на следующей неделе.В CTPP2 реализован основной функционал версии 1.8, но вторая ветка является совершенно новым продуктом, с новым API и новыми возможностями.
Нововведения:
- компиляция шаблонов в байт-код
- вызов функций из функций
- новое API
- виртуальная машина
- универсальный тип данных CDT
- Операторы TMPL_elsif, TMPL_comment
Сравнительные результаты измерения производительности CCTP2:
- В 3 раза быстрее HTML::Template::JIT;
- В 9 раз быстрее HTML::Template::Pro;
- В 30 раз быстрее HTML::Template;
- В 33 раза быстрее Template::Toolkit;URL: http://community.livejournal.com/ru_highload/35798.html?styl...
Новость: http://www.opennet.me/opennews/art.shtml?num=14269
> Шаблонизатор представляет ..... бизнес-логику от их представления.Так сказать - Прорабов от строителей :)
в своё время php задумывался как примерно то же самое :)
Сейчас идет достаточно сильная ориентация на использование ajax. Основная страница загружается один раз, дальше все решает JS и скрипты на стороне сервера. Есть ли смысл увеличивать производительность шаблонизаторов? А вот скорость работы JS машины поднять не повредило бы:)
>Сейчас идет достаточно сильная ориентация на использование ajax. Основная страница загружается один
>раз, дальше все решает JS и скрипты на стороне сервера. Есть
>ли смысл увеличивать производительность шаблонизаторов? А вот скорость работы JS машины
>поднять не повредило бы:)AJAX - не "серебряная пуля" и только им дело не ограничивается. Тем более, что как раз на основе одного и того же набора серверной логики + шаблонизаторов можно гененировать одновременно как XML для AJAX-страниц, так и HTML. Так что шаблонизаторы рано еще списывать, AJAX - не замена им, а дополнение.
В свое время пытался пользоваться ранними версиями. Говно редкостное. Да ещё куча не документированных ошибок. Вернулся на HTML::Template::Pro.>> TMPL_comment
убило :)))
Люди, интересно, как на http://ctpp.havoc.ru/ "запостить ошибку"/"выразить благодарность"/"послать на член"?
Дык, там же вроде как есть контактный email. Или убрали?
Код порадовалanight@limac:~/Desktop/ctpp2-2.0.4/src> grep Ouch *.cpp
CTPP2Compiler.cpp: if (pInstr == NULL) { throw "Ouch!"; }
CTPP2JSONParser.cpp: if (sTMP == NULL) { throw CTPPParserSyntaxError("Ouch", szData.GetLine(), szData.GetLinePos()); }
CTPP2JSONParser.cpp: if (sTMP == NULL) { throw CTPPParserSyntaxError("Ouch", szData.GetLine(), szData.GetLinePos()); }
CTPP2Parser.cpp: if (sTMP == NULL) { throw "Ouch!"; }
CTPP2Parser.cpp: throw "Ouch!";
CTPP2Parser.cpp: throw "Ouch!";
CTPP2Parser.cpp: throw "Ouch!";
CTPP2Parser.cpp: throw "Ouch!";
CTPP2Parser.cpp: throw "Ouch!";
CTPP2Parser.cpp: throw "Ouch!";
CTPP2Parser.cpp: throw "Ouch!";
CTPP2Parser.cpp: throw "Ouch!";
CTPP2Parser.cpp: throw "Ouch!";
CTPP2Parser.cpp: throw "Ouch!";