public function testGetReadConnectionReturnsAConnectionNamedAfterTheManager()
 {
     $manager = new ConnectionManagerMasterSlave();
     $manager->setName('foo');
     $manager->setReadConfiguration(array(array('dsn' => 'sqlite::memory:')));
     $con = $manager->getReadConnection(new SqliteAdapter());
     $this->assertEquals('foo', $con->getName());
 }
예제 #2
0
파일: Propel.php 프로젝트: rozwell/Propel2
 /**
  * Sets the configuration for Propel and all dependencies.
  *
  * @param      mixed The Configuration (array or Configuration)
  */
 public static function setConfiguration($c)
 {
     $serviceContainer = self::getServiceContainer();
     $serviceContainer->closeConnections();
     if (is_array($c)) {
         $c = new Registry($c);
     }
     // set datasources
     if (isset($c['datasources'])) {
         foreach ($c['datasources'] as $name => $params) {
             if (!is_array($params)) {
                 continue;
             }
             // set adapters
             if (isset($params['adapter'])) {
                 $serviceContainer->setAdapterClass($name, $params['adapter']);
             }
             // set connection settings
             if (isset($params['connection'])) {
                 $conParams = $params['connection'];
                 if (isset($conParams['slaves'])) {
                     $manager = new ConnectionManagerMasterSlave();
                     $manager->setName($name);
                     $manager->setReadConfiguration($conParams['slaves']);
                     unset($conParams['slaves']);
                     $manager->setWriteConfiguration($conParams);
                 } else {
                     $manager = new ConnectionManagerSingle();
                     $manager->setName($name);
                     $manager->setConfiguration($conParams);
                 }
                 $serviceContainer->setConnectionManager($name, $manager);
             }
         }
     }
     // set default datasource
     $defaultDatasource = isset($c['datasources']['default']) ? $c['datasources']['default'] : self::DEFAULT_NAME;
     $serviceContainer->setDefaultDatasource($defaultDatasource);
     // set profiler
     if (isset($c['profiler'])) {
         $profilerConf = $c['profiler'];
         if (isset($profilerConf['class'])) {
             $serviceContainer->setProfilerClass($profilerConf['class']);
             unset($profilerConf['class']);
         }
         if ($profilerConf) {
             $serviceContainer->setProfilerConfiguration($profilerConf);
         }
     }
     // set logger
     if (isset($c['log'])) {
         foreach ($c['log'] as $loggerConfiguration) {
             $name = $loggerConfiguration['name'];
             unset($loggerConfiguration['name']);
             $serviceContainer->setLoggerConfiguration($name, $loggerConfiguration);
         }
     }
     self::$configuration = $c;
 }