function hook_module_implements_alter
Same name in other branches
- 7.x modules/system/system.api.php \hook_module_implements_alter()
- 9 core/lib/Drupal/Core/Extension/module.api.php \hook_module_implements_alter()
- 10 core/lib/Drupal/Core/Extension/module.api.php \hook_module_implements_alter()
- 11.x core/lib/Drupal/Core/Extension/module.api.php \hook_module_implements_alter()
Alter the registry of modules implementing a hook.
This hook is invoked during \Drupal::moduleHandler()->getImplementations(). A module may implement this hook in order to reorder the implementing modules, which are otherwise ordered by the module's system weight.
Note that hooks invoked using \Drupal::moduleHandler->alter() can have multiple variations(such as hook_form_alter() and hook_form_FORM_ID_alter()). \Drupal::moduleHandler->alter() will call all such variants defined by a single module in turn. For the purposes of hook_module_implements_alter(), these variants are treated as a single hook. Thus, to ensure that your implementation of hook_form_FORM_ID_alter() is called at the right time, you will have to change the order of hook_form_alter() implementation in hook_module_implements_alter().
Parameters
$implementations: An array keyed by the module's name. The value of each item corresponds to a $group, which is usually FALSE, unless the implementation is in a file named $module.$group.inc.
$hook: The name of the module hook being implemented.
Related topics
5 functions implement hook_module_implements_alter()
Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.
- common_test_module_implements_alter in core/
modules/ system/ tests/ modules/ common_test/ common_test.module - Implements hook_module_implements_alter().
- content_translation_module_implements_alter in core/
modules/ content_translation/ content_translation.module - Implements hook_module_implements_alter().
- layout_builder_module_implements_alter in core/
modules/ layout_builder/ layout_builder.module - Implements hook_module_implements_alter().
- module_test_module_implements_alter in core/
modules/ system/ tests/ modules/ module_test/ module_test.module - Implements hook_module_implements_alter()
- page_cache_form_test_module_implements_alter in core/
modules/ page_cache/ tests/ modules/ page_cache_form_test.module - Implements hook_module_implements_alter().
3 invocations of hook_module_implements_alter()
- ModuleHandler::alter in core/
lib/ Drupal/ Core/ Extension/ ModuleHandler.php - Passes alterable variables to specific hook_TYPE_alter() implementations.
- ModuleHandler::buildImplementationInfo in core/
lib/ Drupal/ Core/ Extension/ ModuleHandler.php - Builds hook implementation information for a given hook name.
- ModuleImplementsAlterTest::testModuleImplementsAlter in core/
tests/ Drupal/ KernelTests/ Core/ Extension/ ModuleImplementsAlterTest.php - Tests hook_module_implements_alter() adding an implementation.
File
-
core/
lib/ Drupal/ Core/ Extension/ module.api.php, line 117
Code
function hook_module_implements_alter(&$implementations, $hook) {
if ($hook == 'form_alter') {
// Move my_module_form_alter() to the end of the list.
// \Drupal::moduleHandler()->getImplementations()
// iterates through $implementations with a foreach loop which PHP iterates
// in the order that the items were added, so to move an item to the end of
// the array, we remove it and then add it.
$group = $implementations['my_module'];
unset($implementations['my_module']);
$implementations['my_module'] = $group;
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.