function ModuleHandler::invoke

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

File

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

Class

ModuleHandler
Class that manages modules in a Drupal installation.

Namespace

Drupal\Core\Extension

Code

public function invoke($module, $hook, array $args = []) {
  $list = $this->getHookImplementationList($hook);
  $listeners = $list->getForModule($module);
  if ($listeners) {
    if (count($listeners) > 1) {
      throw new \LogicException("Module {$module} should not implement {$hook} more than once");
    }
    return reset($listeners)(...$args);
  }
  return $this->legacyInvoke($module, $hook, $args);
}

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