/** * Initialize ODM Configuration. * * @param array $config ODM DocumentManager configuration. * @return \Doctrine\ODM\MongoDB\Configuration */ 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; }