是否可以通过调用Twig_SimpleFunction来修改当前的twig上下文?
我注册了以下功能:
<?php
namespace Craft;
class TwiggedTwigExtension extends \Twig_Extension
{
public function getName()
{
return 'Twigged';
}
public function getFunctions()
{
return array(
'setContextVar' => new \Twig_SimpleFunction('setContextVar', array($this, 'setContextVar'), array('needs_context' => true)),
);
}
public function setContextVar($context, $str, $val)
{
$context['context'][$str] = $val;
var_dump(array_keys($context['context']));
}
}
Run Code Online (Sandbox Code Playgroud)
从类似模板调用时{{ setContextVar('hellow', 'world') }},var_dump显示修改后的上下文.但是像这样快速检查模板{{ dump(_context|keys) }}并不会显示修改后的上下文.
我是以错误的方式来做这件事的吗?