5

我有一个自定义过滤器做一些事情。

而且我希望特定模块不包含在过滤器链中。换句话说,对于这个模块,我希望我的自定义过滤器不在这个模块上执行并为其他模块执行。

4

1 回答 1

3

我也使用自定义过滤器,在此过滤器中您可以检索当前模块:

<?php

class customFilter extends sfFilter
{
  public function execute ($filterChain)
  {
    $context = $this->getContext();

    if ('moduleName' == $context->getModuleName())
    {
      // jump to the next filter
      return $filterChain->execute();
    }

    // other stuff
  }
}

否则,您还可以在filters.yml文件中给出排除模块:

customFilter:
  class: customFilter
  param:
    module_excluded: moduleName

在课堂上:

<?php

class customFilter extends sfFilter
{
  public function execute ($filterChain)
  {
    $context = $this->getContext();

    if ($this->getParameter('module_excluded') == $context->getModuleName())
    {
      // jump to the next filter
      return $filterChain->execute();
    }

    // other stuff
  }
}
于 2012-10-21T16:07:15.050 回答