diff -u b/core/lib/Drupal.php b/core/lib/Drupal.php --- b/core/lib/Drupal.php +++ b/core/lib/Drupal.php @@ -120,7 +120,7 @@ public static function service($id) { return static::$container->get($id); } - + /** * Retrieves a parameter from the container. diff -u b/core/lib/Drupal/Core/CoreBundle.php b/core/lib/Drupal/Core/CoreBundle.php --- b/core/lib/Drupal/Core/CoreBundle.php +++ b/core/lib/Drupal/Core/CoreBundle.php @@ -38,24 +38,7 @@ * Implements \Symfony\Component\HttpKernel\Bundle\BundleInterface::build(). */ public function build(ContainerBuilder $container) { - - // Register cache services. - foreach (array('bootstrap', 'config', 'cache', 'form', 'menu', 'page', 'path') as $bin) { - Cache::registerBin($container, $bin); - } - - $container - ->register('cache_factory', 'Drupal\Core\Cache\CacheFactory') - ->addArgument(new Reference('settings')) - ->addMethodCall('setContainer', array(new Reference('service_container'))); - - $container - ->register('cache.backend.database', 'Drupal\Core\Cache\DatabaseBackendFactory') - ->addArgument(new Reference('database')); - $container - ->register('cache.backend.memory', 'Drupal\Core\Cache\MemoryBackendFactory'); - $container->addCompilerPass(new ListCacheBinsPass()); - + $this->registerCache($container); // Register active configuration storage. $container ->register('config.cachedstorage.storage', 'Drupal\Core\Config\FileStorage') @@ -425,2 +408,25 @@ + /** + * Register services related to cache. + */ + protected function registerCache(ContainerBuilder $container) { + // This factory chooses the backend service for a given bin. + $container + ->register('cache_factory', 'Drupal\Core\Cache\CacheFactory') + ->addArgument(new Reference('settings')) + ->addMethodCall('setContainer', array(new Reference('service_container'))); + // These are the core provided backend services. + $container + ->register('cache.backend.database', 'Drupal\Core\Cache\DatabaseBackendFactory') + ->addArgument(new Reference('database')); + $container + ->register('cache.backend.memory', 'Drupal\Core\Cache\MemoryBackendFactory'); + // Register a service for each bin for injecting purposes. + foreach (array('bootstrap', 'config', 'cache', 'form', 'menu', 'page', 'path') as $bin) { + Cache::registerBin($container, $bin); + } + + $container->addCompilerPass(new ListCacheBinsPass()); + } + }