hook_module_implements_alter(&$implementations, $hook)
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
- Hooks
- Define functions that alter the behavior of Drupal core.
File
- core/lib/Drupal/Core/Extension/module.api.php, line 119
- Hooks related to module and update systems.
Code
1 2 3 4 5 6 7 8 9 10 11 12 | 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 ; } } |
Please login to continue.