Example #1
0
 /**
  * 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];
 }
Example #2
0
 /**
  * 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];
 }
Example #3
0
 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);
 }