private function prepareODMConfiguration(array $config = array())
{
$odmConfig = $config['odm'];
$defaultDocumentManagerName = isset($odmConfig['defaultDocumentManager']) ? $odmConfig['defaultDocumentManager'] : $this->defaultDocumentManager;
unset($odmConfig['defaultDocumentManager']);
$defaultDocumentManager = array('documentManagerClass' => 'Doctrine\\ODM\\MongoDB\\DocumentManager', 'configurationClass' => 'Doctrine\\ODM\\MongoDB\\Configuration', 'documentNamespaces' => array(), 'connection' => $this->defaultConnection, 'proxy' => array('autoGenerateClasses' => true, 'namespace' => 'Proxy', 'dir' => APPLICATION_PATH . '/../library/Proxy'), 'hydrator' => array('namespace' => 'Hydrators', 'dir' => APPLICATION_PATH . '/../cache'), 'queryCache' => $this->defaultCacheInstance, 'resultCache' => $this->defaultCacheInstance, 'metadataCache' => $this->defaultCacheInstance, 'metadataDrivers' => array(), 'connectionString' => '');
$documentManagers = array();
if (isset($odmConfig['documentManagers'])) {
$configDocumentManagers = $odmConfig['documentManagers'];
foreach ($configDocumentManagers as $name => $documentManager) {
$name = isset($documentManager['id']) ? $documentManager['id'] : $name;
$documentManagers[$name] = array_replace_recursive($defaultDocumentManager, $documentManager);
}
} else {
$documentManagers = array($this->defaultConnection => array_replace_recursive($defaultDocumentManager, $odmConfig));
}
return array('defaultDocumentManager' => $defaultDocumentManagerName, 'documentManagers' => $documentManagers);
}