protected function ModuleHandler::getImplementationInfo in Drupal 10
Same name and namespace in other branches
- 8 core/lib/Drupal/Core/Extension/ModuleHandler.php \Drupal\Core\Extension\ModuleHandler::getImplementationInfo()
- 9 core/lib/Drupal/Core/Extension/ModuleHandler.php \Drupal\Core\Extension\ModuleHandler::getImplementationInfo()
Provides information about modules' implementations of a hook.
Parameters
string $hook: The name of the hook (e.g. "help" or "menu").
Return value
mixed[] An array whose keys are the names of the modules which are implementing this hook and whose values are either a string identifying a file in which the implementation is to be found, or FALSE, if the implementation is in the module file.
File
- core/
lib/ Drupal/ Core/ Extension/ ModuleHandler.php, line 583
Class
- ModuleHandler
- Class that manages modules in a Drupal installation.
Namespace
Drupal\Core\ExtensionCode
protected function getImplementationInfo($hook) {
if (!isset($this->implementations)) {
$this->implementations = [];
$this->verified = [];
if ($cache = $this->cacheBackend
->get('module_implements')) {
$this->implementations = $cache->data;
}
}
if (!isset($this->implementations[$hook])) {
// The hook is not cached, so ensure that whether or not it has
// implementations, the cache is updated at the end of the request.
$this->cacheNeedsWriting = TRUE;
// Discover implementations.
$this->implementations[$hook] = $this
->buildImplementationInfo($hook);
// Implementations are always "verified" as part of the discovery.
$this->verified[$hook] = TRUE;
}
elseif (!isset($this->verified[$hook])) {
if (!$this
->verifyImplementations($this->implementations[$hook], $hook)) {
// One or more of the implementations did not exist and need to be
// removed in the cache.
$this->cacheNeedsWriting = TRUE;
}
$this->verified[$hook] = TRUE;
}
return $this->implementations[$hook];
}