fenom-template / fenom

Template Engine for PHP. Maintainers wanted!
Other
446 stars 108 forks source link

Параметр $parser_close в блоках #57

Closed wertyzp closed 10 years ago

wertyzp commented 10 years ago

https://github.com/bzick/fenom/blob/master/docs/ext/tags.md#block-function

Последний параметр при определении блока вместо вставки напрямую в код возвращаемого значения вставляется как echo ... Пример:

            $fenom->addBlockFunction("func", "func",
                    function(\Fenom\Tokenizer $tokens, \Fenom\Scope $scope){
                        return 'foreach($products as $key => $value) { extract($value); ';
                    },
                    function(\Fenom\Tokenizer $tokens, \Fenom\Scope $scope){
                        return '}';
                    });

Первый колбек вставляется прямо в код php, точно как я этого ожидал Второй колбек вставляется с приставкой echo что полностью ломает логику

bzick commented 10 years ago

Тут вам нужен $fenom->addBlockCompiler("func", function() {}, function() {});, который вызывается при компиляции и позволит вам вставить пхп код в шаблон. Методы типа addBlockFunction добавляют блоковую функцию, которая будет выполняться во время выполнения шаблона.

wertyzp commented 10 years ago

Спасибо