Skip to content
Snippets Groups Projects
Commit 94ae1793 authored by catch's avatar catch
Browse files

Revert "Revert "Issue #2761403 by Berdir: Move runtime theme registry into bootstrap cache""

This reverts commit d189ff05.
parent 3348de12
No related branches found
No related tags found
2 merge requests!7452Issue #1797438. HTML5 validation is preventing form submit and not fully...,!789Issue #3210310: Adjust Database API to remove deprecated Drupal 9 code in Drupal 10
......@@ -1447,7 +1447,7 @@ services:
arguments: ['@app.root', '@theme_handler', '@cache.bootstrap', '@module_handler']
theme.registry:
class: Drupal\Core\Theme\Registry
arguments: ['@app.root', '@cache.default', '@lock', '@module_handler', '@theme_handler', '@theme.initialization']
arguments: ['@app.root', '@cache.default', '@lock', '@module_handler', '@theme_handler', '@theme.initialization', null, '@cache.bootstrap']
tags:
- { name: needs_destruction }
calls:
......
......@@ -140,6 +140,13 @@ class Registry implements DestructableInterface {
*/
protected $themeManager;
/**
* The runtime cache.
*
* @var \Drupal\Core\Cache\CacheBackendInterface
*/
protected $runtimeCache;
/**
* Constructs a \Drupal\Core\Theme\Registry object.
*
......@@ -157,8 +164,10 @@ class Registry implements DestructableInterface {
* The theme initialization.
* @param string $theme_name
* (optional) The name of the theme for which to construct the registry.
* @param \Drupal\Core\Cache\CacheBackendInterface $runtime_cache
* The cache backend interface to use for the runtime theme registry data.
*/
public function __construct($root, CacheBackendInterface $cache, LockBackendInterface $lock, ModuleHandlerInterface $module_handler, ThemeHandlerInterface $theme_handler, ThemeInitializationInterface $theme_initialization, $theme_name = NULL) {
public function __construct($root, CacheBackendInterface $cache, LockBackendInterface $lock, ModuleHandlerInterface $module_handler, ThemeHandlerInterface $theme_handler, ThemeInitializationInterface $theme_initialization, $theme_name = NULL, CacheBackendInterface $runtime_cache = NULL) {
$this->root = $root;
$this->cache = $cache;
$this->lock = $lock;
......@@ -166,6 +175,7 @@ public function __construct($root, CacheBackendInterface $cache, LockBackendInte
$this->themeName = $theme_name;
$this->themeHandler = $theme_handler;
$this->themeInitialization = $theme_initialization;
$this->runtimeCache = $runtime_cache;
}
/**
......@@ -239,7 +249,7 @@ public function get() {
public function getRuntime() {
$this->init($this->themeName);
if (!isset($this->runtimeRegistry[$this->theme->getName()])) {
$this->runtimeRegistry[$this->theme->getName()] = new ThemeRegistry('theme_registry:runtime:' . $this->theme->getName(), $this->cache, $this->lock, array('theme_registry'), $this->moduleHandler->isLoaded());
$this->runtimeRegistry[$this->theme->getName()] = new ThemeRegistry('theme_registry:runtime:' . $this->theme->getName(), $this->runtimeCache ?: $this->cache, $this->lock, array('theme_registry'), $this->moduleHandler->isLoaded());
}
return $this->runtimeRegistry[$this->theme->getName()];
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment