Управление из шаблона

Invizz

Новичок
Управление из шаблона

Хотелось бы узнать мнение знающей публики насчет моего решения. Я не хотел бы сталкиваться с проблемами, которые кто-то возможно уже давно решил и все такое (читай: изобратать велосипед).

Есть движок, в нем скорость очень важна. Имеется шаблонизатор небольшой, который парсит шаблоны, преобразует в PHP-код, кеширует в файлах.

К примеру, данный шаблон:

PHP:
{loop section="articles" limit="10"}
   <h1>{title}</h1>
   <div>{body}</div>
{/loop}
преобразуется в:

PHP:
$articles = get_content(
   array(
      'section' => 'articles',
      'limit' => '10'
   ),
   array('title', 'body') //вычисляется автоматически
);
$articles_count = count($articles);
for ($i = 0; $i < $articles_count; $i++) {
   echo "<h1>";
   echo $articles['title'];
   echo "</h1><div>";
   echo $articles['body'];
   echo "</div>";
}
То есть, шаблонизатор смотрит, какие переменные
используются в цикле и забирает только их.

Это сделано потому, что на каждое из полей накладываются
различные фильтры, типа fix-html, которые сами по себе
ресурсоёмки.

Возможно, это экономия на спичках, но я люблю экономить :)


Итак, резюмирую свои вопросы:

1) Нормально ли преобразовывать шаблоны в пхп-код?
2) Как синхронизировать "source" шаблоны и "compiled" шаблоны? Можно ли положиться на 'modified time' ?
3) Нормально ли анализировать шаблоны на предмет какие данные используются, чтобы забирать только их, а не подготавливать массивы с данными заранее?
4) С какими трудностями я могу столкнуться в дальнейшем при выбранной методике?
 

Malcolm_Reed

Новичок
1) Нормально ли преобразовывать шаблоны в пхп-код?
нет, имхо.
Зачем? ты говоришь "чтоб выдирать из кода только нужны переменные". А что такого понятие как "условие" в твоем коде нету? Пусть сам скрипт понимает какие переменные ему нужны в следствии какого действия, а шаблон пусть будет простым html кодом с этими переменными.
 

Invizz

Новичок
тут специфика: движок - для блога. типа вордпресса или текстпаттерна со всеми вытекающими - редактирование шаблонов прямо из админки, к примеру. То есть ниче толком нельзя, кроме шаблонов.

Допустим, есть у юзера возможность вывести последние комменты. он может и не воспользоваться этой возможностью -- зачем их выбирать тогда? :)
 

Alexandre

PHPПенсионер
1) Нормально ли преобразовывать шаблоны в пхп-код?
Нормально, Смарти именно в пхп код их и преобразует.
2) Как синхронизировать "source" шаблоны и "compiled" шаблоны? Можно ли положиться на 'modified time' ?
Смарти использует 'modified time' - я так понял - это значение из дескриптора файла. Именно на 'modified time' построен механизм кеширования.
Нормально ли анализировать шаблоны на предмет какие данные используются, чтобы забирать только их, а не подготавливать массивы с данными заранее?
Точно не отвечу на этот вопрос.
В практике поступают так $tmpl->assign( "templateVar" , $value )
4) С какими трудностями я могу столкнуться в дальнейшем при выбранной методике?
хз

-~{}~ 15.01.07 11:44:

Malcolm_Reedнет, имхо.
сколько людей - столько и мнений
 
Сверху