| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | 
							- <?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\Common\EventManager;
 - use Doctrine\DBAL\Configuration;
 - use Doctrine\DBAL\DriverManager;
 - use Doctrine\DBAL\Types\Type;
 - 
 - /**
 -  * Connection
 -  */
 - class ConnectionFactory
 - {
 -     private $typesConfig = array();
 -     private $commentedTypes = array();
 -     private $initialized = false;
 - 
 -     /**
 -      * Construct.
 -      *
 -      * @param array $typesConfig
 -      */
 -     public function __construct(array $typesConfig)
 -     {
 -         $this->typesConfig = $typesConfig;
 -     }
 - 
 -     /**
 -      * Create a connection by name.
 -      *
 -      * @param array         $params
 -      * @param Configuration $config
 -      * @param EventManager  $eventManager
 -      *
 -      * @return \Doctrine\DBAL\Connection
 -      */
 -     public function createConnection(array $params, Configuration $config = null, EventManager $eventManager = null, array $mappingTypes = array())
 -     {
 -         if (!$this->initialized) {
 -             $this->initializeTypes();
 -             $this->initialized = true;
 -         }
 - 
 -         $connection = DriverManager::getConnection($params, $config, $eventManager);
 - 
 -         if (!empty($mappingTypes)) {
 -             $platform = $connection->getDatabasePlatform();
 -             foreach ($mappingTypes as $dbType => $doctrineType) {
 -                 $platform->registerDoctrineTypeMapping($dbType, $doctrineType);
 -             }
 -             foreach ($this->commentedTypes as $type) {
 -                 $platform->markDoctrineTypeCommented(Type::getType($type));
 -             }
 -         }
 - 
 -         return $connection;
 -     }
 - 
 -     /**
 -      * initialize the types
 -      */
 -     private function initializeTypes()
 -     {
 -         foreach ($this->typesConfig as $type => $typeConfig) {
 -             if (Type::hasType($type)) {
 -                 Type::overrideType($type, $typeConfig['class']);
 -             } else {
 -                 Type::addType($type, $typeConfig['class']);
 -             }
 -             if ($typeConfig['commented']) {
 -                 $this->commentedTypes[] = $type;
 -             }
 -         }
 -     }
 - }
 
 
  |