Twig:如何在自定义函数中手动转义?

Twig: How can I manually escape inside a custom function?

我编写了自己的输出 HTML 的 Twig 函数,所以我将 is_safe 设置为 html 以便 Twig 知道不要转义输出我的函数。

但是,我的函数接受参数。其中一个参数直接放在输出中。我想在输出之前转义它。所以看来我只需要能够在输出之前手动转义选项值。

我找不到如何执行此操作。有人知道吗?

诀窍是存储树枝环境,然后传递给 twig_escape_filter

class TournExtension extends \Twig_Extension
{
    protected $env;

    public function initRuntime(\Twig_Environment $env)
    {
        parent::initRuntime($env);
        $this->env = $env;
    }
    protected function escape($string)
    {
        return twig_escape_filter($this->env,$string);
    }