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()); }
/** * 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; }