public function __construct(array $config = array())
{
// Registering Class Loaders
if (isset($config['classLoader'])) {
$this->registerClassLoaders($config['classLoader']);
}
// Defining DBAL configuration
$dbalConfig = $this->prepareDBALConfiguration($config);
// Defining default DBAL Connection name
$this->defaultConnection = $dbalConfig['defaultConnection'];
// Defining Cache configuration
$cacheConfig = array();
if (isset($config['cache'])) {
$cacheConfig = $this->prepareCacheInstanceConfiguration($config);
// Defining default Cache instance
$this->defaultCacheInstance = $cacheConfig['defaultCacheInstance'];
}
// Defining ORM configuration
$ormConfig = array();
if (isset($config['orm'])) {
$ormConfig = $this->prepareORMConfiguration($config);
// Defining default ORM EntityManager
$this->defaultEntityManager = $ormConfig['defaultEntityManager'];
}
// Defining ODM configuration
if (isset($config['odm'])) {
$odmConfig = $this->prepareODMConfiguration($config);
// Defining default ORM EntityManager
$this->defaultDocumentManager = $odmConfig['defaultDocumentManager'];
}
// Defining Doctrine Context configuration
$this->configuration = array('dbal' => $dbalConfig['connections'], 'cache' => $cacheConfig['instances'], 'orm' => $ormConfig['entityManagers']);
// In case a ODM configuration is available, add it to the main configuration
if (isset($odmConfig['documentManagers'])) {
$this->configuration['odm'] = $odmConfig['documentManagers'];
}
}