diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc
index fdcb01b..e4391d8 100644
--- a/core/includes/bootstrap.inc
+++ b/core/includes/bootstrap.inc
@@ -725,7 +725,7 @@ function drupal_settings_initialize() {
   global $base_url, $base_path, $base_root, $script_path;
 
   // Export these settings.php variables to the global namespace.
-  global $databases, $cookie_domain, $conf, $installed_profile, $update_free_access, $db_url, $db_prefix, $drupal_hash_salt, $is_https, $base_secure_url, $base_insecure_url, $config_directories;
+  global $databases, $cookie_domain, $conf, $installed_profile, $update_free_access, $db_url, $db_prefix, $drupal_hash_salt, $is_https, $base_secure_url, $base_insecure_url, $config_directories, $cache_backends;
   $conf = array();
 
   // Make conf_path() available as local variable in settings.php.
@@ -838,6 +838,9 @@ function drupal_settings_initialize() {
   }
   $prefix = ini_get('session.cookie_secure') ? 'SSESS' : 'SESS';
   session_name($prefix . substr(hash('sha256', $session_name), 0, 32));
+
+  // Initialize the $cache_backend to empty array.
+  $cache_backends = array();
 }
 
 /**
@@ -2258,12 +2261,12 @@ function _drupal_bootstrap_configuration() {
  * Attempts to serve a page from the cache.
  */
 function _drupal_bootstrap_page_cache() {
-  global $user;
+  global $user, $cache_backends;
 
   // Allow specifying special cache handlers in settings.php, like
   // using memcached or files for storing cache information.
   require_once DRUPAL_ROOT . '/core/includes/cache.inc';
-  foreach (variable_get('cache_backends', array()) as $include) {
+  foreach ($cache_backends as $include) {
     require_once DRUPAL_ROOT . '/' . $include;
   }
   // Check for a cache mode force from settings.php.
diff --git a/core/lib/Drupal/Core/Cache/CacheFactory.php b/core/lib/Drupal/Core/Cache/CacheFactory.php
index da42a26..7afbf5f 100644
--- a/core/lib/Drupal/Core/Cache/CacheFactory.php
+++ b/core/lib/Drupal/Core/Cache/CacheFactory.php
@@ -43,14 +43,11 @@ public static function get($bin) {
    *   value.
    */
   public static function getBackends() {
-    // @todo Improve how cache backend classes are defined. Cannot be
-    //   configuration, since e.g. the CachedStorage config storage controller
-    //   requires the definition in its constructor already.
-    global $conf;
-    $cache_backends = isset($conf['cache_classes']) ? $conf['cache_classes'] : array();
+    global $cache_backends;
+
     // Ensure there is a default 'cache' bin definition.
-    $cache_backends += array('cache' => 'Drupal\Core\Cache\DatabaseBackend');
-    return $cache_backends;
+    $backends = $cache_backends + array('cache' => 'Drupal\Core\Cache\DatabaseBackend');
+    return $backends;
   }
 
 }
