/** * Enables a filter from the collection. * * @param string $name Name of the filter. * * @return \Doctrine\ORM\Query\Filter\SQLFilter The enabled filter. * * @throws \InvalidArgumentException If the filter does not exist. */ public function enable($name) { if (null === ($filterClass = $this->config->getFilterClassName($name))) { throw new \InvalidArgumentException("Filter '" . $name . "' does not exist."); } if (!isset($this->enabledFilters[$name])) { $this->enabledFilters[$name] = new $filterClass($this->em); // Keep the enabled filters sorted for the hash ksort($this->enabledFilters); // Now the filter collection is dirty $this->filtersState = self::FILTERS_STATE_DIRTY; } return $this->enabledFilters[$name]; }
/** * Enables a filter from the collection. * * @param string $name Name of the filter. * * @throws \InvalidArgumentException If the filter does not exist. * * @return SQLFilter The enabled filter. */ public function enable($name) { if (!isset($this->enabledFilters[$name])) { if (isset($this->disabledFilters[$name])) { $this->enabledFilters[$name] = $this->disabledFilters[$name]; unset($this->disabledFilters[$name]); } else { /** * Keeping logic of doctrine filters */ if (null === ($filterClass = $this->config->getFilterClassName($name))) { throw new \InvalidArgumentException("Filter '" . $name . "' does not exist."); } $this->enabledFilters[$name] = new $filterClass($this->em); } ksort($this->enabledFilters); $this->setFiltersStateDirty(); } return $this->enabledFilters[$name]; }
public function testAddGetFilters() { $this->assertSame(null, $this->configuration->getFilterClassName('NonExistingFilter')); $this->configuration->addFilter('FilterName', __CLASS__); $this->assertSame(__CLASS__, $this->configuration->getFilterClassName('FilterName')); }
/** * Checks whether filter with given name is defined. * * @param string $name Name of the filter. * * @return bool true if the filter exists, false if not. */ public function has($name) { return null !== $this->config->getFilterClassName($name); }