diff --git a/core/includes/module.inc b/core/includes/module.inc index a711cf1c421ea739f4c6048286b3966762bc36b5..7a1c0765799e5e7a84351305e4b9b73deb6d9d3a 100644 --- a/core/includes/module.inc +++ b/core/includes/module.inc @@ -96,8 +96,7 @@ function module_list($type = 'module_enabled', array $fixed_list = NULL, $reset if (isset($fixed_list)) { $module_list = array(); foreach ($fixed_list as $name => $module) { - drupal_classloader_register($name, dirname($module['filename'])); - drupal_get_filename('module', $name, $module['filename']); + system_register('module', $name, $module['filename']); $module_list[$name] = $name; } $list = $module_list; @@ -161,8 +160,7 @@ function system_list($type) { // drupal_get_filename() static cache for bootstrap modules only. // The rest is stored separately to keep the bootstrap module cache small. foreach ($bootstrap_list as $name => $filename) { - drupal_classloader_register($name, dirname($filename)); - drupal_get_filename('module', $name, $filename); + system_register('module', $name, $filename); } // We only return the module names here since module_list() doesn't need // the filename itself. @@ -256,8 +254,7 @@ function system_list($type) { // To avoid a separate database lookup for the filepath, prime the // drupal_get_filename() static cache with all enabled modules and themes. foreach ($lists['filepaths'] as $item) { - drupal_get_filename($item['type'], $item['name'], $item['filepath']); - drupal_classloader_register($item['name'], dirname($item['filepath'])); + system_register($item['type'], $item['name'], $item['filepath']); } } @@ -283,6 +280,22 @@ function system_list_reset() { state()->delete('system.theme.data'); } +/** + * Registers an extension in runtime registries for execution. + * + * @param string $type + * The extension type; e.g., 'module' or 'theme'. + * @param string $name + * The internal name of the extension; e.g., 'node'. + * @param string $uri + * The relative URI of the primary extension file; e.g., + * 'core/modules/node/node.module'. + */ +function system_register($type, $name, $uri) { + drupal_get_filename($type, $name, $uri); + drupal_classloader_register($name, dirname($uri)); +} + /** * Determines which modules require and are required by each module. *