Изменения

Template Toolkit

1024 байта добавлено, 15:40, 25 июня 2010
м
Нет описания правки
Кстати, раз обычный Stash — просто кошмар неиллюзорный, а Template Toolkit был (да и до сих пор) весьма популярен, в районе года 2000 появилась его XS-версия (то есть, переписанная на C) — {{CPAN|Template::Stash::XS}}. После этого TT-шаблонам, всё-таки, полегчало. Но, во-первых, Stash никогда не был единственным замедляющим работу TT уровнем, во-вторых, даже Stash::XS всё равно работает не так быстро, как мог бы, а в-третьих, Stash::XS долгое время имел различные баги — например, поддержка UTF-8 в {{CPAN|Template::Stash::XS}} появилась только 4 июля 2009 года. И ещё Stash::XS менее безопасен — делает меньше проверок на ошибки. Пример раскопок по данной причине: [http://m0r1k.livejournal.com/11794.html Perl + mod_perl + gdb].
 
Update от 25.06.2010. Ещё одним TT’шным идиотизмом является способ получения имени текущего шаблона, «в котором находишься». Его можно взять из обычного Stash’а, из '''специальных''' переменных с именами (!) «component» и «template». Гениально. Ну хотя бы «_» в начале имени поставили, или хотя бы верхним регистром написали. А так — конфликты обеспечены, та же Bugzilla на них нарывается. И опять-таки самое ужасное в том, что получение текущего шаблона вообще нелогично смешивать с данными шаблона — его логично вообще отделить в функцию, либо «сельф» какой-нибудь завести (<tt>$self/this</tt>).
=== Пример: Bugzilla ===