diff --git a/core/lib/Drupal/Core/DrupalBundle.php b/core/lib/Drupal/Core/DrupalBundle.php index 5791c74f578d2708ca55743caa411ecf5d64a200..30c074d9be4bb29124098e03434112a3281a336d 100644 --- a/core/lib/Drupal/Core/DrupalBundle.php +++ b/core/lib/Drupal/Core/DrupalBundle.php @@ -22,6 +22,7 @@ public function build(ContainerBuilder $container) 'tags' => array(), 'references' => array(), 'methods' => array(), + 'arguments' => array(), ); $references = array(); @@ -31,6 +32,15 @@ public function build(ContainerBuilder $container) $definition = new Definition($info['class'], $references); + if (isset($info['factory_class']) && isset($info['factory_method'])) { + $definition->setFactoryClass($info['factory_class']); + $definition->setFactoryMethod($info['factory_method']); + } + + foreach ($info['arguments'] as $argument) { + $definition->addArgument($argument); + } + foreach($info['tags'] as $tag) { $definition->addTag($tag); } @@ -122,6 +132,18 @@ function getDefinitions() { 'references' => array('exception_controller'), 'tags' => array('kernel.event_subscriber') ), + 'database' => array( + 'class' => 'Drupal\Core\Database\Connection', + 'factory_class' => 'Drupal\Core\Database\Database', + 'factory_method' => 'getConnection', + 'arguments' => array('default'), + ), + 'database.slave' => array( + 'class' => 'Drupal\Core\Database\Connection', + 'factory_class' => 'Drupal\Core\Database\Database', + 'factory_method' => 'getConnection', + 'arguments' => array('slave'), + ), ); }