diff --git a/core/includes/module.inc b/core/includes/module.inc index c7f5d76..f9dd1f7 100644 --- a/core/includes/module.inc +++ b/core/includes/module.inc @@ -657,11 +657,20 @@ function drupal_required_modules() { function module_set_weight($module, $weight) { // Update the module weight in the config file that contains it. $module_config = config('system.module'); + $extension_handler = drupal_extension_handler(); + $enabled_modules = $extension_handler->getEnabledModules(); if ($module_config->get("enabled.$module") !== NULL) { + $sorted_modules = module_config_sort($module_config->get('enabled')); $module_config ->set("enabled.$module", $weight) - ->set('enabled', module_config_sort($module_config->get('enabled'))) + ->set('enabled', $sorted_modules) ->save(); + $sorted_with_filenames = array(); + foreach (array_keys($sorted_modules) as $m) { + $sorted_with_filenames[$m] = $enabled_modules[$m]; + } + // Refresh the module list in the extension handler. + $extension_handler->setModuleList($sorted_with_filenames); return; } $disabled_config = config('system.module.disabled'); diff --git a/core/modules/breakpoint/breakpoint.install b/core/modules/breakpoint/breakpoint.install index 97a5777..60ba9cf 100644 --- a/core/modules/breakpoint/breakpoint.install +++ b/core/modules/breakpoint/breakpoint.install @@ -18,6 +18,5 @@ function breakpoint_enable() { _breakpoint_theme_enabled(array_keys($themes)); // Import breakpoints from modules. - $modules = module_list(); _breakpoint_modules_enabled(array_keys(drupal_extension_handler()->getEnabledModules())); } diff --git a/core/modules/simpletest/lib/Drupal/simpletest/UnitTestBase.php b/core/modules/simpletest/lib/Drupal/simpletest/UnitTestBase.php index 648aa42..d7bd225 100644 --- a/core/modules/simpletest/lib/Drupal/simpletest/UnitTestBase.php +++ b/core/modules/simpletest/lib/Drupal/simpletest/UnitTestBase.php @@ -56,9 +56,6 @@ protected function setUp() { $conf = array(); drupal_static_reset(); - // Enforce an empty module list. - module_list(NULL, array()); - $conf['file_public_path'] = $this->public_files_directory; // Change the database prefix. diff --git a/core/modules/system/lib/Drupal/system/Tests/Module/EnableDisableTest.php b/core/modules/system/lib/Drupal/system/Tests/Module/EnableDisableTest.php index e73ace9..423b582 100644 --- a/core/modules/system/lib/Drupal/system/Tests/Module/EnableDisableTest.php +++ b/core/modules/system/lib/Drupal/system/Tests/Module/EnableDisableTest.php @@ -39,7 +39,7 @@ function testEnableDisable() { // Remove already enabled modules (via installation profile). // @todo Remove this after removing all dependencies from Testing profile. - foreach (module_list() as $dependency) { + foreach ($this->container->get('extension_handler')->getEnabledModules() as $dependency => $filename) { // Exclude required modules. Only installation profile "suggestions" can // be disabled and uninstalled. if (isset($modules[$dependency])) { diff --git a/core/modules/system/lib/Drupal/system/Tests/Module/ModuleApiTest.php b/core/modules/system/lib/Drupal/system/Tests/Module/ModuleApiTest.php index 42924bf..d139123 100644 --- a/core/modules/system/lib/Drupal/system/Tests/Module/ModuleApiTest.php +++ b/core/modules/system/lib/Drupal/system/Tests/Module/ModuleApiTest.php @@ -50,8 +50,7 @@ function testModuleList() { // Try to mess with the module weights. module_set_weight('contact', 20); - // Reset the module list. - system_list_reset(); + // Move contact to the end of the array. unset($module_list[array_search('contact', $module_list)]); $module_list[] = 'contact'; @@ -59,16 +58,13 @@ function testModuleList() { // Test the fixed list feature. $fixed_list = array( - 'system' => array('filename' => drupal_get_path('module', 'system')), - 'menu' => array('filename' => drupal_get_path('module', 'menu')), + 'system' => 'core/modules/system/system.module', + 'menu' => 'core/modules/menu/menu.module', ); - module_list(NULL, $fixed_list); + $this->container->get('extension_handler')->setModuleList($fixed_list); $new_module_list = array_combine(array_keys($fixed_list), array_keys($fixed_list)); $this->assertModuleList($new_module_list, t('When using a fixed list')); - // Reset the module list. - module_list_reset(); - $this->assertModuleList($module_list, t('After reset')); } /** @@ -78,8 +74,9 @@ function testModuleList() { * The expected values, sorted by weight and module name. */ protected function assertModuleList(Array $expected_values, $condition) { - $expected_values = array_combine($expected_values, $expected_values); - $this->assertEqual($expected_values, module_list(), format_string('@condition: module_list() returns correct results', array('@condition' => $condition))); + $expected_values = array_values(array_unique($expected_values)); + $enabled_modules = array_keys($this->container->get('extension_handler')->getEnabledModules()); + $this->assertEqual($expected_values, $enabled_modules, format_string('@condition: module_list() returns correct results', array('@condition' => $condition))); } /** @@ -106,9 +103,9 @@ function testModuleImplements() { module_load_include('inc', 'module_test', 'module_test.file'); $modules = module_implements('test_hook'); - $static = drupal_static('module_implements'); $this->assertTrue(in_array('module_test', $modules), 'Hook found.'); - $this->assertEqual($static['test_hook']['module_test'], 'file', 'Include file detected.'); + $module_implementations = drupal_extension_handler()->cachedHookImplementations(); + $this->assertEqual($module_implementations['test_hook']['module_test'], 'file', 'Include file detected.'); } /** diff --git a/core/modules/system/lib/Drupal/system/Tests/Module/ModuleTestBase.php b/core/modules/system/lib/Drupal/system/Tests/Module/ModuleTestBase.php index b7fd25c..d8425c1 100644 --- a/core/modules/system/lib/Drupal/system/Tests/Module/ModuleTestBase.php +++ b/core/modules/system/lib/Drupal/system/Tests/Module/ModuleTestBase.php @@ -139,7 +139,6 @@ function assertNoModuleConfig($module) { * Expected module state. */ function assertModules(array $modules, $enabled) { - system_list_reset(); foreach ($modules as $module) { if ($enabled) { $message = 'Module "@module" is enabled.';