http://at.tut.by/stepanovsergey/Lapa.zip 40 кб. Обновляется ежедневно. Это не законченное решение, но данный момент скоро настанет. ++ решения поддержка синтаксиса smarty(что бы не учить еще один язык) мало чем отличается от php (выражения допустимы) $i++ = 5 / (-8) и т.п. array и т.п. не теряет производительность при больших шаблонах регулярки для поиска 1 на три экрана не используются можно собирать шаблоны в один можно писать переменные прямо в тексте <div>$var.text.1;</div> -- решения еще нет поддержки is even и т.п., не реализованы конфиги, это через плагины Просьба интерес проявлять на форуме, а не на мыло. прект свободный, ждет участников, и афторов которые имеют противоядие от йада, предлагают часто .
lexa считаю что у такого типа шаблонов преимуществ больше, чем недостатков, практика показывает что применение промежуточных технологий уменьшает общие затраты. (соседу звонишь через атс, дешевле наверно кабель напрямую кинуть? Таких примеров в жизни и программировании на каждом шагу. www & c & c++ & php & template, вот неполный путь того что ты видишь на экране, убирая шаги, ты усложняешь результат. )
обновление http://at.tut.by/stepanovsergey/Lapa.zip 42 кб добавлена: поддержка #config_val#, плагин еще не портирован локальные переменные $$var поддержка доступа к массиву $var.1.$i.4.h - $var[1][$i][4]['h'] доступ к объекту $var.е->r(5+5 / 4* $v++)->t.w - $var['e']->r(5+5 / 4* $v++)->t['w'] section уехал в плагины (для совместимости), loop более быстрый и удобней глобальные переменные lapa & smarty переписан парсер выражений комментарии в стиле php // блокирует до конца строки /* - до конца блока, */ завершает {set $var = 1 + /* добавляем значение*/ 5} {set $var = 1 + 5/* комменты } конструкции типа is even будут реализованы таким образом {[! - not] even($var [, $var2]) }, проверку синтаксиса (уровень вложенности и т.п.) конструкций такого типа сделать довольно сложно (smarty их не контролирует.), если мысли есть, пишем. 440Hz буду рад
Dagdamor http://forum.dklab.ru/php/advises/Bistr ... marty.html пока в бете, пишу один, так что только в свободное время, завтра 0.5.4 исправлениями
в папке test_template начал потихоньку, вообще базовый синтаксис не отличается от smarty, хотя в отличие от него в параметры можно передавать не имена переменных, а сами переменные
думаю тебе стоит сделать простенький сайт, где первым делом расписать преимущества движка и основные правила работы с ним...
Присоединяюсь. Проекту нужен дом в интернете *кхм* могу дать поддомен lapa.phpc.ru и хостинг. "phpc" здесь = "PHP Community"
тест популярных шаблонизаторов http://at.tut.by/stepanovsergey/bench.zip 350 кб добавил несколько шаблонизаторов, некоторые не пашут, при моих настройках. blitz можно скачать на http://sourceforge.net/ самый быстрый, но решение на с. оригинал теста взят здесь http://alexeyrybak.com/blitz/lebowski_bench.tar.gz если не считать провалы дисковых операций (и винт у меня на буке не скоростной, и вытесняющая многозадачность), Lapa оставляет конкурентов далеко позади. -Ю-Ю-Ю вот настолько Dagdamor за предложение спасибо, если что свяжусь.
ustas А как ты замерял? Что-то я не вижу в этих паках никаких замеров (или проглядел?) Маленькое предложение - грохать кеш перед публикацией, чтобы ничего лишнего не было в архиве. Еще вопрос - в какой кодировке в Лапе файлы TODO и Syntax language? Ну это понятно... с нативным кодом не поспоришь... У меня как-то была идея для моего шаблонизатора - если на серваке установлен опкод кеш, то хранить кешированные шаблоны не в виде PHP кода, а в виде опкодов. Было бы еще быстрее, может даже сравнилось бы по скорости с нативными функциями. К сожалению, не смог придумать, как это можно реализовать (у Турка не было встроенной возможности кешировать опкоды напрямую, без сохранения исходного кода на диске, а у APC даже еще беднее API).
Dagdamor кои8r, по ошибке сохранил, исправлю. меряю xdebug, ничего лучше не знаю. смотрю в wincachegrind. Если APC или подобные ему установлены, они сами сохранят опкоды, и при последующем вызове возьмут из кеша. оно и так сравнимо, 10 ms на загрузку класса не играет роли, при включеном оптимизаторе и с подобным из семейста APC это перестает быть главным аргументом противников шаблонизаторов.
ustas У меня другая ситуация была... у меня и шаблоны хранятся в БД, и их кешированные версии тоже, поэтому APC до них добраться не может. В конце концов сделал плагин для движка, который позволяет хранить кешированные шаблоны в виде файлов - специально для нагруженных проектов. Хотя это уже немного оффтоп. Обычно главный аргумент - "зачем нужен шаблонизатор, если PHP сам по себе шаблонизатор"
завтра выпуск новой версии, beta конечно, оптимизирован парсер Добавил альтернативный синтаксис <tpl: foreach from="data" item="val" /> ороро <tpl:foreachelse /> оолло <tpl:endforeach /> и директивы для отладки /* directive debug=highlight_output directive debug=list_tokens directive debug=exit */ отладка стала увлекательным делом