goto
goto

Reputation: 8162

Create a simple twig filter

I get this error message when i create since i have created a simple twig filter. The message is not clear at all.

An exception has been thrown during the compilation of a template ("Warning: Illegal offset type in app/cache/dev/classes.php line 3342")

My filter:

class simpleFilter extends Twig_Extension
{

    public function getFilters()
    {
        return array('simpleFilter' => new Twig_SimpleFilter($this, 'simpleFilter'));

    }

    public function simpleFilter($value)
    {
        return 'test'.$value;
    }

    public function getName()
    {
        return 'some_extension';
    }
}

My config

my.twig.extension.simpleFilter:
    class: Bundle\Twig\Filter\SimpleFilter
    tags:
        - { name: twig.extension }

Am i missing something?

Upvotes: 1

Views: 1001

Answers (2)

goto
goto

Reputation: 8162

I had to use Twig_Filter_Method

public function getFilters()
{
   return array(
      new Twig_Filter_Method('simpleFilter', array($this, 'simpleFilter'))
   );
}

even if i do not know the difference beetween them.

Upvotes: -2

dmnptr
dmnptr

Reputation: 4304

Try to change your getFilters to look like this:

public function getFilters()
{
   return array(
      new Twig_SimpleFilter('simpleFilter', array($this, 'simpleFilter'))
   );
}

Upvotes: 3

Related Questions