我构建了一个 Twig 扩展来做一些事情,其中之一是渲染模板。如何从 twig 扩展内部访问引擎环境并调用 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)
{
// ...
}
对于旧版本的 Twig
public function getFunctions()
{
return array(
new \Twig_SimpleFunction(
'myfunction',
array($this, 'myFunction'),
array('needs_environment' => true)
),
);
}
public function myFunction(\Twig_Environment $environment, string $someParam)
{
// ...
}
关于php - 从 Twig 扩展渲染模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9549026/