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

WP

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

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

-~{}~ 23.01.07 07:10:

Реализовал последний вариант. Понравилось.
 

Alexandre

PHPПенсионер
WP все-таки решил продублировать смарти....
Минус в том что если обращение к переменным происходит в eval
eval - это тормоз.
склоняюсь к третьему варианту
- буду ждать результатов.
 

WP

^_^
Alexandre
Я кстати еще реализовал capture-тег более доступным по ресурсам) Т.к. он не юзает по дефолту ob-функции а заменяет echo вызовы на $capture['name'] .= :)

Все сделал по третьему варианту, остался доволен.
 

WP

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