diff --git a/core/includes/module.inc b/core/includes/module.inc index bc50d2c..a9a4e35 100644 --- a/core/includes/module.inc +++ b/core/includes/module.inc @@ -126,17 +126,24 @@ function module_load_install($module) { * load the files of disabled modules. */ function module_load_include($type, $module, $name = NULL) { + static $file_name = []; if (!isset($name)) { $name = $module; } + $key = $type . ':' . $module . ':' . $name; + if (!isset($file_name)) { + return $file_name[$key]; + } if (function_exists('drupal_get_path')) { $file = DRUPAL_ROOT . '/' . drupal_get_path('module', $module) . "/$name.$type"; if (is_file($file)) { require_once $file; + $file_name[$key] = $file; return $file; } } + $file_name[$key] = FALSE; return FALSE; } diff --git a/core/lib/Drupal/Core/Extension/ModuleHandler.php b/core/lib/Drupal/Core/Extension/ModuleHandler.php index b9a9a3e..d43d94a 100644 --- a/core/lib/Drupal/Core/Extension/ModuleHandler.php +++ b/core/lib/Drupal/Core/Extension/ModuleHandler.php @@ -262,15 +262,22 @@ public function loadInclude($module, $type, $name = NULL) { include_once $this->root . '/core/includes/install.inc'; } + static $file_name = []; $name = $name ?: $module; + $key = $type . ':' . $module . ':' . $name; + if (isset($file_name[$key])) { + return $file_name[$key]; + } if (isset($this->moduleList[$module])) { $file = $this->root . '/' . $this->moduleList[$module]->getPath() . "/$name.$type"; if (is_file($file)) { require_once $file; + $file_name[$key] = $file; return $file; } } + $file_name[$key] = FALSE; return FALSE; }