从树枝扩展呈现模板对于旧版本的 Twig
2022-08-30 23:53:27
我构建了一个树枝扩展来做一些事情,其中之一就是渲染一个模板。如何从树枝扩展内部访问引擎环境并调用 Render 方法?
我构建了一个树枝扩展来做一些事情,其中之一就是渲染一个模板。如何从树枝扩展内部访问引擎环境并调用 Render 方法?
您可以定义扩展,以便它需要环境。Twig 会自动将其传递给函数。
use Twig\Environment;
use Twig\TwigFunction;
public function getFunctions()
{
return [
new TwigFunction(
'myfunction',
[$this, 'myFunction'],
['needs_environment' => true]
),
];
}
public function myFunction(Environment $environment, string $someParam)
{
// ...
}
public function getFunctions()
{
return array(
new \Twig_SimpleFunction(
'myfunction',
array($this, 'myFunction'),
array('needs_environment' => true)
),
);
}
public function myFunction(\Twig_Environment $environment, string $someParam)
{
// ...
}
使用此功能,用户可以将树枝环境实例传递给树枝扩展
private $environment;
public function initRuntime(\Twig_Environment $environment)
{
$this->environment = $environment;
}