如何在Twig扩展中的Token Parser中获取变量

时间:2015-03-19 02:47:59

标签: php symfony twig

我无法在我的枝条扩展中传递正确的数据

示例令牌解析器parse函数:

public function parse(\Twig_Token $token)
{
    $parser = $this->parser;
    $stream = $parser->getStream();

    $firstVariable = $stream->getCurrent();    
}

表达式{% myTag "someString" %}会将$firstVariable设置为' someString'。

但是,如果我们设置一个变量:

{% set someVariable = "someString" %}
{% myTag someVariable %}

您最终得到的名称类型为' someVariable'而不是预期的变量值' someString'

如何正确解析自定义twig标记的第一个参数,允许输入为字符串或包含字符串的变量?

修改

看起来您可以使用变量名称并在返回的树枝节点中使用它。

public function compile(){
    $compiler->write('echo "$context[$variableName]"');
}

但我需要在编译之前访问它。

修改 我不再相信在编译之前可以访问上下文。除非任何人有更多信息要分享这个主题,否则将这个问题视为一个小问题

0 个答案:

没有答案