phalconphp伏特定制功能不起作用

时间:2014-08-10 09:41:22

标签: php phalcon volt

我在自定义函数中访问变量时遇到问题。

我的代码是:

{{ myFunction(variableFromController) }}

和PHP:

$compiler->addFunction('myFunction',function($resolvedArgs,$exprArgs)use($di,$compiler){
   $arg = $compiler->expression($exprArgs[0]['expr']); $lang = $di->get('lang');
   echo $lang->translate($arg);
});

问题是编译器会将变量作为字符串“$ variableFromController”返回。我做错了什么?

1 个答案:

答案 0 :(得分:2)

Volt(或其他引擎)只是PHP上的某种附加层,因此您添加到编译器的任何函数都更像是一个快捷方式。他们不是自己“做”某事。它们只是打印将在以后执行的部分代码。

换句话说,这很糟糕:

$compiler->addFunction('myFunction',function($resolvedArgs,$exprArgs)use($di,$compiler){
   // do stuff with $value
   return $someClass->someMethod($value);
});

这很好:

$compiler->addFunction('myFunction',function($resolvedArgs,$exprArgs)use($di,$compiler){
   $arg = $compiler->expression($exprArgs[0]['expr']); $lang = $di->get('lang');
   return '\\My\\Class::staticMethod('.$arg.', '.$lang.')';
});

干杯!