me

[info]slonik_v_domene


Убей в себе государство


Previous Entry Add to Memories Share Next Entry
CTPP 2.6.0 (Dzoraget) has been released!
me
[info]slonik_v_domene
Наконец-то дошли руки оформить ветку 2.6.

Итак, встречайте: CTPP2 2.6.0 Technology Preview.

Основные концепции описаны здесь:
http://slonik-v-domene.livejournal.com/54400.html

Что получит пользователь?


- возможность сравнения строк и чисел в строковом и числовом контексте (то, что так давно хотели перлисты ;).
- поддержку несколько новых синтаксисов (TT, smarty, asp-like)
- новые функции
- более удобное API
- улучшенный вывод ошибок времени компиляции и исполнения
- чуть более высокую скорость работы
- немного меньший размер откомпилированных шаблонов
- внятную документацию
- набор ready-to-use примеров

Что не доделано в Technology Preview?


Блоки try/catch/finally, оператор TMPL_define, оператор TMPL_break, компиляторы шаблонов для синтаксисов TT и Smarty. Все это - в следующих версиях патчей.

На что обратить внимание?


В ряде мест сильно изменено API шаблонизатора. Это значит, что ни модуль Perl, ни расшираения PHP и Python с 2.6.0 не скомпилируются. Это - временно. Как только 2.6.0 будет отлажена окончательно, я исправлю все ошибки сборки.

будет и перловые и пхп модули для 2.6.0?

Разумеется, модули будут. В Рамблере основная используемая технология - mod_perl, поээтому модуль Perl гарантированно будет.

это очень хорошо, а я особо не всматривался в изменения, шаблоны переделывать надо будет если используются tmpl_var, tmpl_loop, tmpl_foreach, tmpl_include ?

Версия 2.6 будет поддерживать несколько синтаксисов.

Текущийн снтаксис на основе соглашений HTML::Template, разумеется, останется.

Будет введена поддержка TT-like диалекта [% foo %] и его аналогов: {% foo %}, <% foo %>.

Кроме того, для диалекта основе HTML::Template появится возможность доступа к элементам хэшей и массивов не через функции типа ARRAY_ELEMENT / HASH_ELEMENT, а через прямое указание индекса.

То есть, вместо кривого
<TMPL_var HASH_ELEMENT('foo', ARRAY_ELEMENT(3, array))>
будет понятнаяя и красивая запись
<TMPL_var array[3]['foo'] >

про хеш это хорошо! очень даже!

Может это уже есть, ..
А можно ли вызывать функцию в tmpl_loop ?
Было бы клево сделать предобработку, например, перевернуть массив, или выкинуть лишнее, ...

Вызывать функцию в <TMPL_loop FUNCTION()> нельзя. Делать предобработки можно через условия, а реверс массива будет в скором времени реализован через TMPL_rloop / TMPL_rforeach.


You are viewing [info]slonik_v_domene's journal