Prevent output escaping in Twig function extension

symfony, twig

Solution

This can be done by adding an option at the extension registration.

public function getFilters(){
    return array(
        // ...
        'image' => new \Twig_Filter_Method($this, 'imageFilter',
            array('is_safe' => array('html'))
        ),
        // ...
    );
}

This will provide unescaped input HTML and return unescaped HTML output. If you need to work with escaped HTML input, see the option `'pre_escaped' => 'html'`.

Problem

I have created a Twig extension: ``` {{ image ("image.png", 200) }} ``` HI know I can just do ``` {{ image ("image.png", 200)|raw }} ``` ...but I would prefer to use PHP code so that everything (from this 'image' extension) is not escaped. I can't see this possible. I know I can prevent all output escaping in Twig, but I just want this one extension not to escape output, and everything else to do so.

Original source