function ModuleHandler::add
Adds a module or profile to the list of currently active modules.
Parameters
string $type: The extension type; either 'module' or 'profile'.
string $name: The module name; e.g., 'node'.
string $path: The module path; e.g., 'core/modules/node'.
Deprecated
in drupal:11.2.0 and is removed from drupal:12.0.0. There is no direct replacement.
See also
https://www.drupal.org/node/3491200
2 calls to ModuleHandler::add()
- ModuleHandler::addModule in core/
lib/ Drupal/ Core/ Extension/ ModuleHandler.php - Adds a module to the list of currently active modules.
- ModuleHandler::addProfile in core/
lib/ Drupal/ Core/ Extension/ ModuleHandler.php - Adds an installation profile to the list of currently active modules.
File
-
core/
lib/ Drupal/ Core/ Extension/ ModuleHandler.php, line 239
Class
- ModuleHandler
- Class that manages modules in a Drupal installation.
Namespace
Drupal\Core\ExtensionCode
protected function add($type, $name, $path) {
$pathname = "{$path}/{$name}.info.yml";
$php_file_path = $this->root . "/{$path}/{$name}.{$type}";
if ($filename = file_exists($php_file_path) ? "{$name}.{$type}" : NULL) {
include_once $php_file_path;
}
$this->moduleList[$name] = new Extension($this->root, $type, $pathname, $filename);
$this->resetImplementations();
$hook_collector = HookCollectorPass::collectAllHookImplementations([
$name => [
'pathname' => $pathname,
],
]);
// A module freshly added will not be registered on the container yet.
// Load all includes so the legacy section of invoke can handle hooks in
// includes.
$hook_collector->loadAllIncludes();
// Register procedural implementations.
foreach ($hook_collector->getAddableImplementations() as $hook => $functions_by_module) {
$list = $this->hookImplementationLists[$hook] ?? NULL;
$listeners = $list?->listeners ?? [];
$modules = $list?->modules ?? [];
foreach ($functions_by_module as $module => $function) {
$listeners[] = $function;
$modules[] = $module;
}
if ($listeners) {
$this->hookImplementationLists[$hook] = new ImplementationList($listeners, $modules);
}
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.