Шаблонизатор Ltpl

Рейтинг: 1Ответов: 1Опубликовано: 01.06.2011

К сожалению, не знаю, уместны ли на Хэшкоде вопросы такого типа. Написал недавно шаблонизатор на php и хотелось бы услышать ваши мнения о нем.
Шаблонизатор фактически состоит из одного файла и служит для отделения логики от представления. Плюс, в него добавлено несколько фич, которых мне лично не хватало при работе с другим шаблонизатором (конкретнее - с шаблонизатором из Abo.CMS).
В общем, жду ваших мнений по поводу скорости, удобства, полноты документации и всего, что касается работы шаблонизатора. =)

UPD 02.06.2011:
Обновил шаблонизатор и ссылку на скачивание.

Ссылка на скачивание - http://narod.ru/disk/14793860001/class.Ltpl.zip

Ответы

▲ 2
preg_match_all('/<block_([^\s>]+)>/', $thtml, $blocks);
// ...
if(strpos($thtml, '<block_'.$blocks[1][$i].'>') === false)
// ...
// здесь еще 2 раза strpos вызывается
$this->children[$blocks[1][$i]]->parse($this->getBetween('<block_'.$blocks[1][$i].'>', '</block_'.$blocks[1][$i].'>', $thtml));
// ... 
$thtml = preg_replace(
            '/<block_'.$blocks[1][$i].'>[\s\S]*<\/block_'.$blocks[1][$i].'>/',
            '<block_'.$blocks[1][$i].'>',
            $thtml
        );

Т.е. ваш шаблонизатор для каждого блока на каждой итерации проходит по всему шаблону минимум 4 раза. Боюсь, что такой шаблонизатор умрет раньше, чем веб-приложение станет чуть сложнее "Hello, World".

Я бы посоветовал вам не изобретать велосипеды, а воспользоваться проверенными годами шаблонизаторами.

Blitz - является одним из самых быстрых, легких и лаконичных блочных шаблонизаторов для PHP. Разработан русским программистом и успешно применяется на многочисленных highload проектах (например, на habrahabr.ru).