在Symfony中:如何从过滤器链中排除模块

时间:2012-10-21 15:24:10

标签: php symfony1 symfony-1.4 filtering

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

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

1 个答案:

答案 0 :(得分: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
  }
}