Преглед на файлове

[DoctrineMongoDBBundle] added "default_database" attribute to DI extension

Kris Wallsmith преди 15 години
родител
ревизия
82e440c181

+ 4 - 2
src/Symfony/Bundle/DoctrineMongoDBBundle/DependencyInjection/DoctrineMongoDBExtension.php

@@ -87,7 +87,8 @@ class DoctrineMongoDBExtension extends Extension
             'cache_driver',
             'metadata_cache_driver',
             'proxy_namespace',
-            'auto_generate_proxy_classes'
+            'auto_generate_proxy_classes',
+            'default_database',
         );
         foreach ($options as $key) {
             if (isset($config[$key])) {
@@ -135,7 +136,8 @@ class DoctrineMongoDBExtension extends Extension
             'setMetadataDriverImpl' => new Reference('doctrine.odm.mongodb.metadata'),
             'setProxyDir' => $proxyCacheDir,
             'setProxyNamespace' => $container->getParameter('doctrine.odm.mongodb.proxy_namespace'),
-            'setAutoGenerateProxyClasses' => $container->getParameter('doctrine.odm.mongodb.auto_generate_proxy_classes')
+            'setAutoGenerateProxyClasses' => $container->getParameter('doctrine.odm.mongodb.auto_generate_proxy_classes'),
+            'setDefaultDB' => $container->getParameter('doctrine.odm.mongodb.default_database'),
         );
         foreach ($methods as $method => $arg) {
             $odmConfigDef->addMethodCall($method, array($arg));

+ 1 - 0
src/Symfony/Bundle/DoctrineMongoDBBundle/Resources/config/mongodb.xml

@@ -7,6 +7,7 @@
   <parameters>
     <parameter key="doctrine.odm.mongodb.default_document_manager">default</parameter>
     <parameter key="doctrine.odm.mongodb.default_connection">default</parameter>
+    <parameter key="doctrine.odm.mongodb.default_database">default</parameter>
     <parameter key="doctrine.odm.mongodb.metadata_cache_driver">array</parameter>
     <parameter key="doctrine.odm.mongodb.connection_class">Doctrine\ODM\MongoDB\Mongo</parameter>
     <parameter key="doctrine.odm.mongodb.configuration_class">Doctrine\ODM\MongoDB\Configuration</parameter>

+ 6 - 0
src/Symfony/Bundle/DoctrineMongoDBBundle/Tests/DependencyInjection/AbstractMongoDBExtensionTest.php

@@ -111,6 +111,12 @@ abstract class AbstractMongoDBExtensionTest extends TestCase
         $this->assertEquals('%doctrine.odm.mongodb.connection_class%', $definition->getClass());
         $this->assertEquals(array('mongodb://localhost:27017', array('connect' => true)), $definition->getArguments());
 
+        $definition = $container->getDefinition('doctrine.odm.mongodb.default_configuration');
+        $methodCalls = $definition->getMethodCalls();
+        $methodNames = array_map(function($call) { return $call[0]; }, $methodCalls);
+        $this->assertType('integer', $pos = array_search('setDefaultDB', $methodNames));
+        $this->assertEquals('mydb', $methodCalls[$pos][1][0]);
+
         $definition = $container->getDefinition('doctrine.odm.mongodb.default_document_manager');
         $this->assertEquals('%doctrine.odm.mongodb.document_manager_class%', $definition->getClass());
         $this->assertEquals('create', $definition->getFactoryMethod());

+ 1 - 1
src/Symfony/Bundle/DoctrineMongoDBBundle/Tests/DependencyInjection/Fixtures/config/xml/mongodb_service_simple_single_connection.xml

@@ -6,7 +6,7 @@
     xsi:schemaLocation="http://www.symfony-project.org/schema/dic/services http://www.symfony-project.org/schema/dic/services/services-1.0.xsd
                         http://www.symfony-project.org/schema/dic/doctrine/odm/mongodb http://www.symfony-project.org/schema/dic/doctrine/odm/mongodb/mongodb-1.0.xsd">
 
-    <doctrine:mongodb server="mongodb://localhost:27017">
+    <doctrine:mongodb server="mongodb://localhost:27017" default_database="mydb">
         <metadata_cache_driver type="memcache">
             <class>Doctrine\Common\Cache\MemcacheCache</class>
             <host>localhost</host>

+ 1 - 0
src/Symfony/Bundle/DoctrineMongoDBBundle/Tests/DependencyInjection/Fixtures/config/yml/mongodb_service_simple_single_connection.yml

@@ -1,5 +1,6 @@
 doctrine_odm.mongodb:
   server: mongodb://localhost:27017
+  default_database: mydb
   options: { connect: true }
   metadata_cache_driver:
     type: memcache