Стабильная версия шаблонизатора Lapa

ustas

Элекомист №1
Стабильная версия шаблонизатора Lapa

качать Lapa_0_5_4_310.zip
Можно начинать присматриваться, компилирует относительно быстро, синтаксический контроль, с указанием строки и т.п.
Кеш работает по аналогии smarty, но более продвинутый. можно удалять пачками по ключам, по группе ключей, по именам.
Можно указать несколько папок с шаблонами, искать будет по очереди.
Отладчик показывает всю информацию о шаблонах, время по операциям, локальные и глобальные переменные для каждого шаблона, уровень вложенности, вставки.
Совместим с синтаксисом smarty, и значительно его расширяет. Сняты ограничения для выражений, но рекомендуется использовать мозги, прежде чем писать {set $var - 4 / 100 * -16 & 8 }.
Плагины можно просто копировать, изменять название функций вместо smarty на lapa. примеры в любом плагине.
можно создавать плагины для таких структур как for, if и т.п. пример в плагине section
можно управлять сгенерированным кодом из плагинов компилятора, и создавать свои условия наподобие
#ifdef PHP_WIN32
#endif из с
можно вставлять переменные прямо в шаблон <b>$var;</b>, опционально (параметр parse_text = true)
Текущие дела:
настройки безопасности, wraper'ы, отладка, прикрутить gettext с возможностью компилировать php код для определённого языка

установка: скопировать , подключить , использовать по назначению.
примеры прилагаются.
 

WP

^_^
> компилирует относительно быстро
Сорри, а не всё ли равно? :)

Выкинь тест Quicky vs Lapa, непосредственно вывод.
 

Alexandre

PHPПенсионер
хотим тестов производительности, наподобие как сделал fisher.
не обязательно так много, но сравнение со смарти желательно.
 

ustas

Элекомист №1
tf
можно

Провел тесты на основе http://alexeyrybak.com/blitz/lebowski_bench.tar.gz

сравниваю с smarty
выполнение откомпилированного файла, без учёта загрузки класса 2.5-3 ms и 2.5-3 ms (smarty)
с учётом загрузки класса 12-17 и аналогично гуляющий результат
компиляция 78 ms и соответственно 117 ms при одинаковых шаблонах (показывает совместимость)
без учёта на загрузку компилятора 37 и 67

для чистоты добавлю квики, и выложу (сегодня).

-~{}~ 04.10.07 04:34:

тест популярных шаблонизаторов http://at.tut.by/stepanovsergey/bench.zip 350 кб
добавил несколько шаблонизаторов, некоторые не пашут, при моих настройках.
blitz можно скачать на http://sourceforge.net/ самый быстрый, но решение на с.

оригинал теста взят здесь http://alexeyrybak.com/blitz/lebowski_bench.tar.gz

выводы делайте самостоятельно


WP
обрати внимание- данные входные стоит проверять все таки. а так даже папки на слеш не проверяет, запарился я. Без обид только, ничего личного, код быстрый, но тормоза нет, ручника тоже, руль только в одну сторону крутится. Скажем так: на общественный продукт не тянет.
 

fisher

накатила суть
на bench.zip:
ERROR
The requested URL could not be retrieved

можно сюда выложить результаты бенчмарков в виде удобночитаемой таблицы?
 

fixxxer

К.О.
Партнер клуба
надеюсь тестирование проводится с акселератором?
 

WP

^_^
ustas
Выпей йаду. Проверять входные данные надо не в ущерб производительности.

-~{}~ 08.10.07 19:08:

Что-то я не увидел сравнительного теста, сейчас сделаю сам.
 

fixxxer

К.О.
Партнер клуба
$dir=realpath($dir) это конечно офигеть какое снижение производительности :D
 

WP

^_^
N Engine name Time Percentage
1 quicky 0.000706 100%
2 lapa 0.002378 337%
Но 0.000706 потому что без акселератора, прогоню с ним и будет намного лучше.

-~{}~ 08.10.07 19:49:

fixxxer
Во-первых не только эта строка, во-вторых я бы не стал брать каждую проверку (задачу) отдельно, а взглянул бы совокупно. Если всё везде проверять мы получаем смарти, который, кстати ломается nul-байтом в регулярке и модификатором 'e' что сводит на нет всех их усилия.
 

fisher

накатила суть
WP, почему в тестах только твой движок и лапа. Что именно тестируется и как. Ребят, вам учиться надо. Лабораторные работы по физике делали, нет?
 

ustas

Элекомист №1
fisher
у меня любимый учитель по физике и информатике.
2) мы и учимся
 

AmdY

Пью пиво
Команда форума
ustas
тогда почему отчёты оформлять не научился ;)
 

ustas

Элекомист №1
AmdY
я только финансовые сочинять умею, в основном липовые

вот сравнительный тест.

0,000150 php
0,016000 php include
0,003300 blitz
0,009000 Xtemplate
компилирующие движки, без компиляции
0,008000 smarty
0,005600 quiсky
0,009000 lapa

в процентах выполнения от php с оптимизатором
php include 106%
blitz 22%
Xtemplate 60%
smarty 53%
quiсky 37%
lapa 60%

с акселератором, по сути пропущена загрузка класса
smarty 17% 0,0024~
quiсky 14% 0,0020~
lapa 15% 0,0021~

тест проводился на aser ferrari amd turion 64 mobile 1.99 ГГц, 896 mb

-~{}~ 09.10.07 15:19:

в основном потеря скорости происходит из за include (как правило классы весят 30-60 кб)

выводы, пользуйтесь чем можете, и получаете максимальное удовольствие. Оргазм так сказать :)
 

HraKK

Мудак
Команда форума
ustas
Напиши мне какие плюсы я получу перейдя с quicky на lapa?
Какие минусы?
 

ustas

Элекомист №1
http://alexeyrybak.com/blitz/lebowski_bench.tar.gz
HraKK
0,0021
0,0017
0,0018
отработка метода, остальное include

-~{}~ 09.10.07 16:20:

HraKK
у каждого свои плюсы, можно перейти на blitz.
у меня для тебя плюсов и минусов нет. Есть только ты.
я думаю в финальной версии будет api для расширений, враперы (и сейчас уже сделать можно), ну и кеш управляемый, модульность, возможность легко вводить новые конструкции, хорошая отладка, конфигурационные файлы для каждого проекта (указание пути, и все настройки разом применялись - это позволит повысить быстродействие основного класса). так что пока не переходи.
 
Сверху