private function startODMConfiguration(array $config = array())
{
$configClass = $config['configurationClass'];
$configuration = new $configClass();
$configuration = new \Doctrine\ODM\MongoDB\Configuration();
// Entity Namespaces configuration
foreach ($config['documentNamespaces'] as $alias => $namespace) {
$configuration->addDocumentNamespace($alias, $namespace);
}
// Proxy configuration
$configuration->setAutoGenerateProxyClasses($config['proxy']['autoGenerateClasses'] === true || !in_array($config['proxy']['autoGenerateClasses'], array("0", "false", false)));
$configuration->setProxyNamespace($config['proxy']['namespace']);
$configuration->setProxyDir($config['proxy']['dir']);
$configuration->setHydratorDir($config['hydrator']['dir']);
$configuration->setHydratorNamespace($config['hydrator']['namespace']);
// Cache configuration
$configuration->setMetadataCacheImpl($this->getCacheInstance($config['metadataCache']));
// Metadata configuration
$configuration->setMetadataDriverImpl($this->startODMMetadata($config['metadataDrivers']));
if (isset($config['defaultDb'])) {
$configuration->setDefaultDB($config['defaultDb']);
}
if (isset($config['environment'])) {
$configuration->setDefaultDB($config['environment']);
}
return $configuration;
}