function ModuleHandler::invokeAll

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/Extension/ModuleHandler.php \Drupal\Core\Extension\ModuleHandler::invokeAll()
  2. 10 core/lib/Drupal/Core/Extension/ModuleHandler.php \Drupal\Core\Extension\ModuleHandler::invokeAll()
  3. 11.x core/lib/Drupal/Core/Extension/ModuleHandler.php \Drupal\Core\Extension\ModuleHandler::invokeAll()

Overrides ModuleHandlerInterface::invokeAll

1 call to ModuleHandler::invokeAll()
ModuleHandler::invokeAllDeprecated in core/lib/Drupal/Core/Extension/ModuleHandler.php
Invokes a deprecated hook in all enabled modules that implement it.

File

core/lib/Drupal/Core/Extension/ModuleHandler.php, line 398

Class

ModuleHandler
Class that manages modules in a Drupal installation.

Namespace

Drupal\Core\Extension

Code

public function invokeAll($hook, array $args = []) {
    $return = [];
    $implementations = $this->getImplementations($hook);
    foreach ($implementations as $module) {
        $function = $module . '_' . $hook;
        $result = call_user_func_array($function, $args);
        if (isset($result) && is_array($result)) {
            $return = NestedArray::mergeDeep($return, $result);
        }
        elseif (isset($result)) {
            $return[] = $result;
        }
    }
    return $return;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.