blitz templates - теперь на sf.net

juks

Новичок
Автор оригинала: fixxxer
что ты собрал - то я и подгружал :) работало же ж. красивый phpinfo это точно одна из последних версий же ;) ну баг нашелся и хорошо.

а вот freebsd порт blitz кому нить нужен? можно будет заняться, сделать и попробовать пропихнуть :)
Порт в самый раз. Мне говорили, что не особо сложно пропихнуть. Вот этот товарищ смог: www.reki.ru, но лично я его шаблонизатор не осилил, может быть я дурак.
 

fisher

накатила суть
>>что ты собрал - то я и подгружал
это было не тебе.
а порт - рано имхо. правда. идея классная но рано. надо обкатать и потом чтоб само росло. если само растёт - значит уж по крайней мере не шняга какая-то :)

-~{}~ 24.08.07 23:26:

перенес тему - давайте эту оставим только для новостей и обсуждения будущих планов
http://phpclub.ru/talk/showthread.php?s=&threadid=102113&rand=10

-~{}~ 08.11.07 11:48:

0.5.7 - значительно исправленная силами tony2001 версия
changelog: Bug & memleak fixes by Antony Dovgal
проще говоря, исправлена куча "неправильностей" , которые могли приводить к проблемам в нестандартных ситуациях. поэтому лучше обновиться, хотя и вероятность словить эти косяки невысокая

http://sourceforge.net/project/showfiles.php?group_id=188147&package_id=219988&release_id=551408

enjoy
 

Develar

Новичок
Вышел 0.5.9

"Variables can be used without var_prefix in method calls, i.e. {{ do(something) }} is equal to {{ do($something) }}."

А можешь объяcнить почему? Если помнишь, я писал о моей попытке отказаться от var_prefix, но invalid method call и ты объяснил, что "а затычку (без скобок - переменная) я для своих сделал, они не пишут $ по историческим причинам", а теперь вот такое удобство для программистов пишущих не только на PHP.
 

fixxxer

К.О.
Партнер клуба
эту тему я пропихнул =)

аргументы - (1) почему в переменной можно, а в методе нельзя, (2) если там в скобочках не кавычки, не true и не false, то сейчас это ошибка парсинга - фиг ли этому не быть переменной.

вроде все логично.

(шепотом на ушко: надо не обсуждать-спорить-доказывать, а присылать патчи =))
 

Develar

Новичок
fixxxer
отлично, спасибо, видно, придется таки учить С, а то кругом все патчить под себя надо :)

а тему "new configuration parameter blitz.disable_include disables include in templates when set to 1 (0 by default)" то же ты или нет? Зачем это понадобилось?
 

fisher

накатила суть
читаем CHANGES
- "safety" patch by Konstantin Baryshnikov (ticket #85)
  - blitz.disable_include = 1 disables include in templates (0 by default)
  - disallow calling internal methods from templates i.e. {{ parse() }}
- variables can be used without var_prefix in method calls (ticket #91)
i.e. {{ do(something) }} is equal to {{ do($something) }}
- fixed boolean predicate in if statement
- minor changes in docs

>>Зачем это понадобилось?
параноя ;) если конечному юзеру (вебмастеру) отдается право на правку шаблона на твоем серваке
 

fixxxer

К.О.
Партнер клуба
ну во первых, она самая, а во-вторых, я бы обошелся наследованием да вот только include никак перегрузить не получается, ибо language construct. :)
 

fisher

накатила суть
параноя это хорошо, я без наезду
что касается перегрузки - ну, тут вся проблема только в том, что есть метод инклюд, а есть инклюд из шаблона, и это в-общем разные вещи (хотя внутри они лергают одно и то же) - и в принципе я думаю что можно сделать так, чтобы include как часть языка шаблона дергал бы в каком-то виде include-метод, и тут уже можно перегружать. но фиг знает че там будет и по скорости, и по удобству
 

fixxxer

К.О.
Партнер клуба
я так думаю что нафиг надо. disable_include = true, назвал как угодно по-другому, и все прекрасно дергается.
 

korchasa

LIMB infected
Автор оригинала: ONK
Скачал для своих нужд этот тест http://template-bench.iliakantor.ru/

Погонял на нашем экстеншене, очень остался не доволен методикой измерения времени исполнения тестов. Чем больше итераций, тем менее предсказуемый результат с бОльшим разбросом и меньшей повторяемостью.
Ну так, "ab -n 1000 -c 5 http://localhost/lebowski-bench/php/main.php" наше все ;)

А вас "оторванность от действительности" тестов не удивила?
 

Develar

Новичок
Кто будет использовать blitz с 5.3.0-dev - не пишите blitz.tag_* c } - будет SIGSEGV (core dumped), работает только через ini_set (это не проблема blitz, а нового парсера в 5.3).

попытка установить blitz.tag_close = } и blitz.tag_open = { через php.ini в Linux 2.6.22.13-0.3 x86_64 при любом SAPI 5.3.0-dev (Jan 23 2008) приводит к SIGSEGV, core dumped, работает только при ini_set. = это так к сведению, так как походу это бага не blitz, а PHP (на выходных оформлю нормальный отчет).
 

fixxxer

К.О.
Партнер клуба
а в любом другом месте фигурные скобки в конфиге? может это баг парсера? а если в кавычках писать?
 

Develar

Новичок

morfi

Новичок
Если не указать в конструкторе файл, а файл подгружать в конце ( перед parse()) то неработает (или глючит) block, fetch, и iterate('/чтото/чтото/').
Например так не работает:

PHP:
$indexTemplate->block('errorMsg', array('text' => implode('<br />', $errors)));
и так не работает:
PHP:
$indexTemplate->iterate('errorMsg');
$indexTemplate->set(array('text' => implode('<br />', $errors)));
$indexTemplate->context('/');
а так работает:
PHP:
$indexTemplate->context('errorMsg');
$indexTemplate->iterate('');
$indexTemplate->set(array('text' => implode('<br />', $errors)));
$indexTemplate->context('/');
 

fixxxer

К.О.
Партнер клуба
ну если с context/block/iterate еще спорный вопрос, должно ли оно работать, то как fetch-то может работать с неподгруженным? ;)

вообще совершенно непонятно, зачем понадобилось "не указать в конструкторе файл, а файл подгружать в конце".
 

morfi

Новичок
Мне казалось если уж сделали что шаблон можно подгужать "потом" то и функциональность должна быть соотвтетсвующей.
Ну или хотя бы в документации указать. :)
 

fixxxer

К.О.
Партнер клуба
вообще если так получилось, что имя шаблона по какой-то причине неизвестно, а "просетить" уже надо, то есть такой workaround - можно собирать все в одну переменную вида
PHP:
$set = array(
 'errormsg' => array(
    array('text' => $errors1),
    array('text' => $errors)2,
 ) 
 ..
);
и уже потом делать $tpl->set($set). это кстати, работает чуточку быстрее чем множественные вызовы iterate/block.
 

fisher

накатила суть
morfi, засчитано, добавляю как minor баг. спасибо!

-~{}~ 06.02.08 10:06:

блин, я всё забыл уже сам - это не баг :) для того чтобы итерировать несуществующие контексты надо задавать третий параметр.
а доку надо тщательно отсматривать и переписывать.

<?

dl('blitz.so');

$T = new Blitz();
$T->block('come', array('get' => 'some'), TRUE);

var_dump($T->getIterations());
?>

array(1) {
[0]=>
array(1) {
["come"]=>
array(1) {
[0]=>
array(1) {
["get"]=>
string(4) "some"
}
}
}
}

-~{}~ 06.02.08 10:19:

и для iterate такой параметр ЕСТЬ (я тут где-то писал что нет - это косяк кое-чьей памяти)
 

EugeneVC

Новичок
перешел тут со smarty на bitz
жутко не хватает опции
{{literal}}
тут парсер не смотрит вообще
{{/literal}}

PS: сделал кавычки как в smarty - и обломался с js
 

fisher

накатила суть
надеюсь, что Вы всё-таки привыкните к BEGIN/END (советую писать большими буквами - легче читать). меня не заломает проапгрейдить парсер, однако в blitz изначально {{literal}} это либо вызов и вывод результата исполнения метода literal(), либо вывод переменной $literal. то, что Вы предлагаете, сломает самые основы синтаксиса.

-~{}~ 06.02.08 22:01:

>>PS: сделал кавычки как в smarty - и обломался с js
поясните, плз
 
Сверху