/** * Attempts to load Filter from Container or hands off to parent loader. * * @param Rule $rule * @return BaseFilter */ public function getFilterForRule(Rule $rule) { $filterIdentifier = $rule->getFilter(); if ($this->container === null || !$this->container->has($filterIdentifier)) { return parent::getFilterForRule($rule); } return $this->container->get($filterIdentifier); }
/** * Finds the filter responsible for executing a specific rule * * @param Rule $rule * * @throws \UnexpectedValueException If filter can't be located * @return BaseFilter */ public function getFilterForRule(Rule $rule) { $filterIdentifier = $rule->getFilter(); if (class_exists($filterIdentifier)) { return new $filterIdentifier(); } $error = "Unable to locate filter for: {$filterIdentifier} defined in " . get_class($rule); throw new \UnexpectedValueException($error); }