public function setUp() { $config = new Configuration(); $config->setLoggerCallable(function ($msg) { }); $this->conn = new Connection(null, array(), $config); }
protected function createRepository() { $config = new Configuration(); $config->setLoggerCallable(function ($msg) { }); $this->connection = new Connection(null, array(), $config); $db = $this->connection->selectDatabase(self::$dbName); $coll = $db->createCollection('test'); return new MongoDBRepository($coll); }
/** * {@inheritdoc} */ public function register(Application $app) { // if true debug queries , regenerate proxies and hydrators. $app['odm.debug'] = function ($app) { return $app['debug']; }; // connection config $app['odm.connection.configuration'] = $app->share(function ($app) { $config = new ConnectionConfiguration(); if ($app['odm.debug'] === TRUE && isset($app['logger']) && isset($app['odm.connection.logger'])) { $config->setLoggerCallable($app['odm.connection.log_function']); } return $config; }); // log function $app['odm.connection.log_function'] = $app->protect(function ($msg) use($app) { return $app['odm.connection.logger']->logQuery($msg); }); //if (class_exists('Doctrine\Bundle\MongoDBBundle\Logger\Logger')) { //logger $app['odm.connection.logger'] = $app->share(function ($app) { return new Logger($app['logger']); }); //} // server connection string $app['odm.connection.server'] = ""; // mongo client connection options $app['odm.connection.options'] = array('connect' => TRUE); // mongo client connection $app['odm.connection'] = $app->share(function ($app) { $conn = new Connection($app["odm.connection.server"], $app['odm.connection.options'], $app['odm.connection.configuration']); return $conn; }); // multiple document managers $app['odm.manager_registry'] = $app->share(function ($app) { return new ManagerRegistry("manager_registry", array('default' => $app['odm.connection']), array('default' => $app['odm.dm']), "default", "default"); }); // default document manager $app['odm.dm'] = $app->share(function ($app) { foreach ($app['odm.driver.configs'] as $name => $options) { $driver = DoctrineODMMongoDBServiceProvider::getMetadataDriver($options['type'], $options['path']); $app['odm.chain_driver']->addDriver($driver, $options['namespace']); if ($name === "default") { $app['odm.chain_driver']->setDefaultDriver($driver); } } $app['odm.config']->setMetadataDriverImpl($app['odm.chain_driver']); $dm = DocumentManager::create($app['odm.connection'], $app['odm.config']); # fix the proxy serialization bug @TODO fix it $proxies = glob($app['odm.proxy_dir'] . "/__CG__*.php"); foreach ($proxies as $proxy) { require $proxy; } /* @var DocumentManager $dm */ return $dm; }); // proxy classes dir $app['odm.proxy_dir'] = function () { return sys_get_temp_dir(); }; // proxy classes namespace $app['odm.proxy_namespace'] = 'Proxies'; // hydrators dir $app['odm.hydrator_dir'] = function () { return sys_get_temp_dir(); }; // hydrator namespace $app['odm.hydrator_namespace'] = 'Hydrators'; // main document manager driver $app['odm.chain_driver'] = $app->share(function ($app) { return new MappingDriverChain(); }); // driver configs $app['odm.driver.configs'] = array(); // main manager config $app['odm.config'] = $app->share(function ($app) { $config = new Configuration(); $config->setProxyDir($app['odm.proxy_dir']); $config->setProxyNamespace($app['odm.proxy_namespace']); $config->setHydratorDir($app['odm.hydrator_dir']); $config->setHydratorNamespace($app['odm.hydrator_namespace']); $config->setAutoGenerateHydratorClasses($app['odm.debug']); $config->setAutoGenerateProxyClasses($app['odm.debug']); $config->setDefaultDB($app['odm.connection.dbname']); return $config; }); // if you want to manage mongo db through the $app[console] , execute this function $app['odm.boot_commands'] = $app->protect(function () use($app) { $app["console"]->getHelperSet()->set(new DocumentManagerHelper($app["odm.dm"])); $app['console']->add(new InfoDoctrineODMCommand()); $app["console"]->add(new MongoCommand\QueryCommand()); $app["console"]->add(new MongoCommand\GenerateDocumentsCommand()); $app["console"]->add(new MongoCommand\GenerateHydratorsCommand()); $app["console"]->add(new MongoCommand\GenerateProxiesCommand()); $app["console"]->add(new MongoCommand\GenerateRepositoriesCommand()); $app["console"]->add(new MongoCommand\ClearCache\MetadataCommand()); $app["console"]->add(new MongoCommand\Schema\CreateCommand()); $app["console"]->add(new MongoCommand\Schema\DropCommand()); $app["console"]->add(new MongoCommand\Schema\UpdateCommand()); }); // unique document validator service $app['doctrine_odm.mongodb.unique'] = $app->share(function ($app) { return new UniqueEntityValidator($app['odm.manager_registry']); }); }