Source of file ManagerConfigurator.php
Size: 2,328 Bytes - Last Modified: 2013-03-25T21:13:59+01:00
/home/theseer/Downloads/Symfony/vendor/doctrine/doctrine-bundle/Doctrine/Bundle/DoctrineBundle/ManagerConfigurator.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 | <?php /* * This file is part of the Doctrine Bundle * * The code was originally distributed inside the Symfony framework. * * (c) Fabien Potencier <fabien@symfony.com> * (c) Doctrine Project, Benjamin Eberlei <kontakt@beberlei.de> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Doctrine\Bundle\DoctrineBundle; use Doctrine\ORM\EntityManager; use Doctrine\ORM\Query\Filter\SQLFilter; /** * Configurator for an EntityManager * * @author Christophe Coevoet <stof@notk.org> */ class ManagerConfigurator { private $enabledFilters = array(); private $filtersParameters = array(); /** * Construct. * * @param array $enabledFilters */ public function __construct(array $enabledFilters, array $filtersParameters) { $this->enabledFilters = $enabledFilters; $this->filtersParameters = $filtersParameters; } /** * Create a connection by name. * * @param EntityManager $entityManager */ public function configure(EntityManager $entityManager) { $this->enableFilters($entityManager); } /** * Enable filters for an given entity manager * * @param EntityManager $entityManager * * @return null */ private function enableFilters(EntityManager $entityManager) { if (empty($this->enabledFilters)) { return; } $filterCollection = $entityManager->getFilters(); foreach ($this->enabledFilters as $filter) { $filterObject = $filterCollection->enable($filter); if (null !== $filterObject) { $this->setFilterParameters($filter, $filterObject); } } } /** * Set defaults parameters for a given filter * * @param string $name Filter name * @param SQLFilter $filter Filter object * * @return null */ private function setFilterParameters($name, SQLFilter $filter) { if (!empty($this->filtersParameters[$name])) { $parameters = $this->filtersParameters[$name]; foreach ($parameters as $paramName => $paramValue) { $filter->setParameter($paramName, $paramValue); } } } } |