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

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

-~{}~ 23.01.07 07:10:
Реализовал последний вариант. Понравилось.