Twig 细枝过滤器仅可用于自定义扩展功能

Twig 细枝过滤器仅可用于自定义扩展功能,twig,Twig,有没有办法创建一个只能用于特定功能而不能用于其他功能的细枝过滤器 例如,假设我有一个自定义函数collection(),当我对它应用“sort”过滤器时,它将在扩展类中使用过滤函数“sort”,而不是默认的细枝“sort”过滤器?这不可能根据输入类型使用内置过滤器或自定义过滤器 我的建议是创建一个自定义的My_sort过滤器,它将根据您的需要具有不同的行为 如果变量是Colleciton的实例,则使用sort()方法 否则,您将复制默认sortfilter的行为 比如: public fun

有没有办法创建一个只能用于特定功能而不能用于其他功能的细枝过滤器


例如,假设我有一个自定义函数collection(),当我对它应用“sort”过滤器时,它将在扩展类中使用过滤函数“sort”,而不是默认的细枝“sort”过滤器?

这不可能根据输入类型使用内置过滤器或自定义过滤器

我的建议是创建一个自定义的
My_sort
过滤器,它将根据您的需要具有不同的行为

  • 如果变量是Colleciton的实例,则使用
    sort()
    方法
  • 否则,您将复制默认
    sort
    filter的行为
比如:

public function getFilters()
{
    return array(
            'my_sort' => new \Twig_Filter_Method($this, 'my_sort'),
    );
}

public function my_sort($stuff)
{
    if (is_array($stuff))
    {
        sort($stuff);
    }
    else if ((is_object($stuff)) && ($stuff instanceof Collection))
    {
        $stuff->sort();
    }
}