Symfony 创建一个简单的细枝过滤器

Symfony 创建一个简单的细枝过滤器,symfony,Symfony,我在创建时收到此错误消息,因为我创建了一个简单的细枝过滤器。这个信息一点也不清楚 编译模板期间引发了异常 (“警告:app/cache/dev/classes.php行中的偏移量类型非法 3342“) 我的过滤器: class simpleFilter extends Twig_Extension { public function getFilters() { return array('simpleFilter' => new Twig_SimpleF

我在创建时收到此错误消息,因为我创建了一个简单的细枝过滤器。这个信息一点也不清楚

编译模板期间引发了异常 (“警告:app/cache/dev/classes.php行中的偏移量类型非法 3342“)

我的过滤器:

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.twig.extension.simpleFilter:
    class: Bundle\Twig\Filter\SimpleFilter
    tags:
        - { name: twig.extension }

我遗漏了什么吗?

尝试将您的
getFilters
更改为如下所示:

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

我不得不使用细枝过滤法

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

即使我不知道它们之间的区别。

你需要在小树枝前面用后斜杠。请参见示例:。并将simpleFilter更改为simpleFilter。尝试手动清除缓存
rm-rf app/cache/*
然后预热
php app/console cache:clear
我使用一些use语句,不需要反斜杠。不管怎么说,我还是这么做了,但它没有改变任何事情。我怀疑你在Twig_SimpleFilter前面有一个反斜杠?我有。OP在示例代码中没有一个,所以我假设有一个适当的use语句来适应它。
Twig\u Filter\u方法
已被弃用并将被删除。你必须使用Twig\u SimpleFilter这不是我做的时候