Templates Symfony2/Twig:如何告诉自定义Twig标记不转义输出

Templates Symfony2/Twig:如何告诉自定义Twig标记不转义输出,templates,symfony,twig,Templates,Symfony,Twig,我创建了一个自定义标记,其工作原理如下: {{ thumbnail(image.fullPath,620) }} 不幸的是,我不得不这样使用它 {{ thumbnail(image.fullPath,620)|raw }} 有没有办法直接在细枝扩展中取消景观 My extension注册缩略图代码,如下所示: public function getFunctions() { return array( 'thumbnail' => ne

我创建了一个自定义标记,其工作原理如下:

{{ thumbnail(image.fullPath,620) }}
不幸的是,我不得不这样使用它

{{ thumbnail(image.fullPath,620)|raw }}
有没有办法直接在细枝扩展中取消景观

My extension注册缩略图代码,如下所示:

 public function getFunctions()
    {
        return array(
            'thumbnail' => new \Twig_Function_Method($this, 'thumbnail'),
        );
    }
class Twig_Extension_Escaper extends Twig_Extension
{
...
    public function getFilters()
    {
        return array(
            new Twig_SimpleFilter('raw', 'twig_raw_filter', array('is_safe' => array('all'))),
        );
    }
...
}
...

function twig_raw_filter($string)
{
    return $string;
}

Twig\u Function\u方法的第三个参数::\uu construct()
是函数的一个选项数组。其中一个选项是指定函数是否输出“安全”的HTML/JavaScript代码:

public function getFunctions()
{
    return array(
        'thumbnail' => new \Twig_Function_Method($this, 'thumbnail', array(
            'is_safe' => array('html')
        ))
    );
}

小树枝是这样的:

 public function getFunctions()
    {
        return array(
            'thumbnail' => new \Twig_Function_Method($this, 'thumbnail'),
        );
    }
class Twig_Extension_Escaper extends Twig_Extension
{
...
    public function getFilters()
    {
        return array(
            new Twig_SimpleFilter('raw', 'twig_raw_filter', array('is_safe' => array('all'))),
        );
    }
...
}
...

function twig_raw_filter($string)
{
    return $string;
}
是正确的,但由于
\Twig\u Function\u方法
现在已被弃用,您可以使用
\Twig\u SimpleFunction

return [
    new \Twig_SimpleFunction('thumbnail', [$this, 'thumbnail'], [
        'is_safe' => ['html']
    ]),
];

谢谢你。文件中是否规定了这一点?我找不到它,但也许我找得不够仔细。@Stephenor在Crozin的回答中看到了链接。谢谢,它帮助了我$)你能为这个添加到手册的链接吗?想知道“html”选项可以是什么吗