From a01453a726b76f709f56658d179cfea6560fb165 Mon Sep 17 00:00:00 2001 From: Alex Pott <alex.a.pott@googlemail.com> Date: Fri, 13 Mar 2015 23:10:36 +0000 Subject: [PATCH] Issue #2367747 by Palashvijay4O, andypost, Alienpruts, Cottser, er.pushpinderrana, gaurav.pahuja, pfrenssen, rpayanm, vadim.hirbu: Remove usage of system_rebuild_theme_data() --- core/includes/bootstrap.inc | 3 ++- core/includes/theme.maintenance.inc | 7 ------- core/includes/update.inc | 2 +- core/lib/Drupal/Core/Updater/Theme.php | 2 +- core/modules/locale/locale.compare.inc | 2 +- .../src/Tests/Extension/ModuleHandlerTest.php | 2 +- core/modules/system/system.module | 2 +- .../update/src/Tests/UpdateContribTest.php | 2 +- core/modules/update/src/UpdateManager.php | 15 +++++++++++++-- core/modules/update/update.services.yml | 2 +- 10 files changed, 22 insertions(+), 17 deletions(-) diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc index 89da4b7e4773..45af368345a4 100644 --- a/core/includes/bootstrap.inc +++ b/core/includes/bootstrap.inc @@ -236,7 +236,8 @@ function drupal_get_filename($type, $name, $filename = NULL) { } } // If still unknown, retrieve the file list prepared in state by - // system_rebuild_module_data() and system_rebuild_theme_data(). + // system_rebuild_module_data() and + // \Drupal\Core\Extension\ThemeHandlerInterface::rebuildThemeData(). if (!isset($files[$type][$name]) && \Drupal::hasService('state')) { $files[$type] += \Drupal::state()->get('system.' . $type . '.files', array()); } diff --git a/core/includes/theme.maintenance.inc b/core/includes/theme.maintenance.inc index 861ed7df21ad..d63ce1be6c74 100644 --- a/core/includes/theme.maintenance.inc +++ b/core/includes/theme.maintenance.inc @@ -62,13 +62,6 @@ function _drupal_maintenance_theme() { } } - // Ensure that system.module is loaded. - if (!function_exists('system_rebuild_theme_data')) { - $module_handler = \Drupal::moduleHandler(); - $module_handler->addModule('system', 'core/modules/system'); - $module_handler->load('system'); - } - $themes = \Drupal::service('theme_handler')->listInfo(); // If no themes are installed yet, or if the requested custom theme is not diff --git a/core/includes/update.inc b/core/includes/update.inc index b5c60b39fd5e..ee3d66c690ef 100644 --- a/core/includes/update.inc +++ b/core/includes/update.inc @@ -44,7 +44,7 @@ function update_check_incompatibility($name, $type = 'module') { // We need to do a full rebuild here to make sure the database reflects any // code changes that were made in the filesystem before the update script // was initiated. - $themes = system_rebuild_theme_data(); + $themes = \Drupal::service('theme_handler')->rebuildThemeData(); $modules = system_rebuild_module_data(); } diff --git a/core/lib/Drupal/Core/Updater/Theme.php b/core/lib/Drupal/Core/Updater/Theme.php index b379325edb5c..ea853c89508d 100644 --- a/core/lib/Drupal/Core/Updater/Theme.php +++ b/core/lib/Drupal/Core/Updater/Theme.php @@ -76,7 +76,7 @@ public static function canUpdate($project_name) { public function postInstall() { // Update the theme info. clearstatcache(); - system_rebuild_theme_data(); + \Drupal::service('theme_handler')->rebuildThemeData(); } /** diff --git a/core/modules/locale/locale.compare.inc b/core/modules/locale/locale.compare.inc index e131d99caf12..efefa3b47df2 100644 --- a/core/modules/locale/locale.compare.inc +++ b/core/modules/locale/locale.compare.inc @@ -126,7 +126,7 @@ function locale_translation_project_list() { 'interface translation server pattern', ); $module_data = _locale_translation_prepare_project_list(system_rebuild_module_data(), 'module'); - $theme_data = _locale_translation_prepare_project_list(system_rebuild_theme_data(), 'theme'); + $theme_data = _locale_translation_prepare_project_list(\Drupal::service('theme_handler')->rebuildThemeData(), 'theme'); $project_info = new ProjectInfo(); $project_info->processInfoList($projects, $module_data, 'module', TRUE, $additional_whitelist); $project_info->processInfoList($projects, $theme_data, 'theme', TRUE, $additional_whitelist); diff --git a/core/modules/system/src/Tests/Extension/ModuleHandlerTest.php b/core/modules/system/src/Tests/Extension/ModuleHandlerTest.php index 130ffd2de3ed..d2d6fed9cfb1 100644 --- a/core/modules/system/src/Tests/Extension/ModuleHandlerTest.php +++ b/core/modules/system/src/Tests/Extension/ModuleHandlerTest.php @@ -295,7 +295,7 @@ public function testModuleStreamWrappers() { */ function testThemeMetaData() { // Generate the list of available themes. - $themes = system_rebuild_theme_data(); + $themes = \Drupal::service('theme_handler')->rebuildThemeData(); // Check that the mtime field exists for the bartik theme. $this->assertTrue(!empty($themes['bartik']->info['mtime']), 'The bartik.info.yml file modification time field is present.'); // Use 0 if mtime isn't present, to avoid an array index notice. diff --git a/core/modules/system/system.module b/core/modules/system/system.module index d73ba633c220..f784b3f4b2f4 100644 --- a/core/modules/system/system.module +++ b/core/modules/system/system.module @@ -849,7 +849,7 @@ function system_check_directory($form_element, FormStateInterface $form_state) { * array is returned. * * @see system_rebuild_module_data() - * @see system_rebuild_theme_data() + * @see \Drupal\Core\Extension\ThemeHandlerInterface::rebuildThemeData() */ function system_get_info($type, $name = NULL) { $info = array(); diff --git a/core/modules/update/src/Tests/UpdateContribTest.php b/core/modules/update/src/Tests/UpdateContribTest.php index 77f7b9beda08..dde3e52d3ac0 100644 --- a/core/modules/update/src/Tests/UpdateContribTest.php +++ b/core/modules/update/src/Tests/UpdateContribTest.php @@ -293,7 +293,7 @@ function testUpdateHiddenBaseTheme() { ); $this->config('update_test.settings')->set('system_info', $system_info)->save(); $projects = update_get_projects(); - $theme_data = system_rebuild_theme_data(); + $theme_data = \Drupal::service('theme_handler')->rebuildThemeData(); $project_info = new ProjectInfo(); $project_info->processInfoList($projects, $theme_data, 'theme', TRUE); diff --git a/core/modules/update/src/UpdateManager.php b/core/modules/update/src/UpdateManager.php index 065243068ec9..b92251b38413 100644 --- a/core/modules/update/src/UpdateManager.php +++ b/core/modules/update/src/UpdateManager.php @@ -9,6 +9,7 @@ use Drupal\Core\Config\ConfigFactoryInterface; use Drupal\Core\DependencyInjection\DependencySerializationTrait; use Drupal\Core\Extension\ModuleHandlerInterface; +use Drupal\Core\Extension\ThemeHandlerInterface; use Drupal\Core\KeyValueStore\KeyValueFactoryInterface; use Drupal\Core\StringTranslation\TranslationInterface; use Drupal\Core\StringTranslation\StringTranslationTrait; @@ -63,6 +64,13 @@ class UpdateManager implements UpdateManagerInterface { */ protected $availableReleasesTempStore; + /** + * The theme handler. + * + * @var \Drupal\Core\Extension\ThemeHandlerInterface + */ + protected $themeHandler; + /** * Constructs a UpdateManager. * @@ -76,13 +84,16 @@ class UpdateManager implements UpdateManagerInterface { * The translation service. * @param \Drupal\Core\KeyValueStore\KeyValueFactoryInterface $key_value_expirable_factory * The expirable key/value factory. + * @param \Drupal\Core\Extension\ThemeHandlerInterface $theme_handler + * The theme handler. */ - public function __construct(ConfigFactoryInterface $config_factory, ModuleHandlerInterface $module_handler, UpdateProcessorInterface $update_processor, TranslationInterface $translation, KeyValueFactoryInterface $key_value_expirable_factory) { + public function __construct(ConfigFactoryInterface $config_factory, ModuleHandlerInterface $module_handler, UpdateProcessorInterface $update_processor, TranslationInterface $translation, KeyValueFactoryInterface $key_value_expirable_factory, ThemeHandlerInterface $theme_handler) { $this->updateSettings = $config_factory->get('update.settings'); $this->moduleHandler = $module_handler; $this->updateProcessor = $update_processor; $this->stringTranslation = $translation; $this->keyValueStore = $key_value_expirable_factory->get('update'); + $this->themeHandler = $theme_handler; $this->availableReleasesTempStore = $key_value_expirable_factory->get('update_available_releases'); $this->projects = array(); } @@ -123,7 +134,7 @@ public function getProjects() { if (empty($this->projects)) { // Still empty, so we have to rebuild. $module_data = system_rebuild_module_data(); - $theme_data = system_rebuild_theme_data(); + $theme_data = $this->themeHandler->rebuildThemeData(); $project_info = new ProjectInfo(); $project_info->processInfoList($this->projects, $module_data, 'module', TRUE); $project_info->processInfoList($this->projects, $theme_data, 'theme', TRUE); diff --git a/core/modules/update/update.services.yml b/core/modules/update/update.services.yml index fe01f4785c6d..c14b8ccdb7ea 100644 --- a/core/modules/update/update.services.yml +++ b/core/modules/update/update.services.yml @@ -6,7 +6,7 @@ services: - { name: access_check, applies_to: _access_update_manager } update.manager: class: Drupal\update\UpdateManager - arguments: ['@config.factory', '@module_handler', '@update.processor', '@string_translation', '@keyvalue.expirable'] + arguments: ['@config.factory', '@module_handler', '@update.processor', '@string_translation', '@keyvalue.expirable', '@theme_handler'] update.processor: class: Drupal\update\UpdateProcessor arguments: ['@config.factory', '@queue', '@update.fetcher', '@state', '@private_key', '@keyvalue', '@keyvalue.expirable'] -- GitLab