diff --git a/core/lib/Drupal/Core/Extension/ModuleExtensionList.php b/core/lib/Drupal/Core/Extension/ModuleExtensionList.php index 10570ee..cdc504f 100644 --- a/core/lib/Drupal/Core/Extension/ModuleExtensionList.php +++ b/core/lib/Drupal/Core/Extension/ModuleExtensionList.php @@ -7,8 +7,12 @@ namespace Drupal\Core\Extension; +use Drupal\Core\StringTranslation\StringTranslationTrait; + class ModuleExtensionList extends ExtensionList { + use StringTranslationTrait; + protected $defaults = [ 'dependencies' => [], 'description' => '', @@ -42,6 +46,12 @@ protected function doScanExtensions(ExtensionDiscovery $discovery) { protected function doListExtensions() { $extensions = parent::doListExtensions(); + // It is possible that a module was marked as required by + // hook_system_info_alter() and modules that it depends on are not required. + foreach ($extensions as $extension) { + $this->moduleDataEnsureRequired($extension, $extensions); + } + if ($profile = drupal_get_profile()) { // Installation profiles are hidden by default, unless explicitly specified // otherwise in the .info.yml file. @@ -61,12 +71,6 @@ protected function doListExtensions() { } } - // It is possible that a module was marked as required by - // hook_system_info_alter() and modules that it depends on are not required. - foreach ($extensions as $extension) { - $this->moduleDataEnsureRequired($extension, $extensions); - } - return $extensions; } @@ -84,7 +88,7 @@ protected function moduleDataEnsureRequired(Extension $module, array $modules = $dependency_name = ModuleHandler::parseDependency($dependency)['name']; if (!isset($modules[$dependency_name]->info['required'])) { $modules[$dependency_name]->info['required'] = TRUE; - $modules[$dependency_name]->info['explanation'] = t('Dependency of required module @module', array('@module' => $module->info['name'])); + $modules[$dependency_name]->info['explanation'] = $this->t('Dependency of required module @module', array('@module' => $module->info['name'])); // Ensure any dependencies it has are required. $this->moduleDataEnsureRequired($modules[$dependency_name], $modules); } diff --git a/core/modules/system/system.module b/core/modules/system/system.module index c35764e..dbe3b2c 100644 --- a/core/modules/system/system.module +++ b/core/modules/system/system.module @@ -882,6 +882,7 @@ function system_get_info($type, $name = NULL) { * An associative array of module information. */ function _system_rebuild_module_data() { + \Drupal::service('module_listing')->reset(); return \Drupal::service('module_listing')->listExtensions(); }