По ту сторону экскрементального кода.

  • Автор темы Автор темы WP
  • Дата начала Дата начала

WP

^_^
По ту сторону экскрементального кода.

Пишу Smarty-совместимый шаблонизатор. В Smarty, как известно, скомпилированные шаблоны представляют собой горку экскрементального кода который сильно притормаживает. Мне, отчасти, удалось этого избежать, но вопрос избыточных переменных открыт. Наглядный пример - блок section, в нем объявляется кучка переменных типа index, index_prev, index_next, first, last... хотя, они используются крайне редко. Из сложившейся ситуации я вижу следующие выходы:
- Просто удалить их. Но я не хочу терять совместимость.
- Расставить hook'и на обращения к этим переменным внутри блока, и объявлять только те переменные, которые востребованы. Парсер это позволяет.
Минус в том что если обращение к переменным происходит в eval, то будет облом. Плюсы очевидны.
- Высчитывать значения этих переменных на лету при обращении, то бишь псевдо-переменные и магические константы.
Плюсы очевидны. Минусов не вижу пока, и склоняюсь к этому варианту.
Какие будут мнения? ;)

-~{}~ 23.01.07 07:10:

Реализовал последний вариант. Понравилось.
 
WP все-таки решил продублировать смарти....
Минус в том что если обращение к переменным происходит в eval
eval - это тормоз.
склоняюсь к третьему варианту
- буду ждать результатов.
 
Alexandre
Я кстати еще реализовал capture-тег более доступным по ресурсам) Т.к. он не юзает по дефолту ob-функции а заменяет echo вызовы на $capture['name'] .= :-)

Все сделал по третьему варианту, остался доволен.
 
Несомненно увидит, по лицензии LGPL. Но я не хочу показывать недоделку. Сначала обкатаю, допишу нужные функции, а потом выложу. Через несколько дней, думаю.
 
Сверху