/**
* Connect to MongoDb
* @return DocumentManager
*/
public function _initDb()
{
$container = $this;
$this['documentManager'] = $this->share(function () use($container) {
$dbConfigs = $container['configs']['database'];
try {
if (empty($dbConfigs['user'])) {
$connection_url = "mongodb://{$dbConfigs['host']}:{$dbConfigs['port']}/{$dbConfigs['name']}";
} else {
$connection_url = "mongodb://{$dbConfigs['user']}:{$dbConfigs['passwd']}@{$dbConfigs['host']}:{$dbConfigs['port']}/{$dbConfigs['name']}";
}
AnnotationDriver::registerAnnotationClasses();
$config = new Configuration();
$config->setProxyDir(BIN_PATH . '/src/Blueridge/Documents/Proxies');
$config->setProxyNamespace('Proxies');
$config->setHydratorDir(BIN_PATH . '/src/Blueridge/Documents/Hydrators');
$config->setHydratorNamespace('Hydrators');
$config->setMetadataDriverImpl(AnnotationDriver::create(BIN_PATH . '/src/Blueridge/Documents'));
$config->setDefaultDB($dbConfigs['name']);
return DocumentManager::create(new Connection($connection_url), $config);
} catch (Exception $e) {
error_log($e->getMessage());
}
});
}