function hook_module_implements_alter

Same name in other branches
  1. 9 core/lib/Drupal/Core/Extension/module.api.php \hook_module_implements_alter()
  2. 8.9.x core/lib/Drupal/Core/Extension/module.api.php \hook_module_implements_alter()
  3. 10 core/lib/Drupal/Core/Extension/module.api.php \hook_module_implements_alter()
  4. 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 module_implements(). 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_alter() can have multiple variations (such as hook_form_alter() and hook_form_FORM_ID_alter()). drupal_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

3 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 modules/simpletest/tests/common_test.module
Implements hook_module_implements_alter().
module_test_module_implements_alter in modules/simpletest/tests/module_test.module
Implements hook_module_implements_alter()
system_test_module_implements_alter in modules/simpletest/tests/system_test.module
Implements hook_module_implements_alter().
3 invocations of hook_module_implements_alter()
drupal_alter in includes/module.inc
Passes alterable variables to specific hook_TYPE_alter() implementations.
ModuleImplementsAlterTestCase::testModuleImplementsAlter in modules/simpletest/tests/module.test
Tests hook_module_implements_alter() adding an implementation.
module_implements in includes/module.inc
Determines which modules are implementing a hook.

File

modules/system/system.api.php, line 2022

Code

function hook_module_implements_alter(&$implementations, $hook) {
    if ($hook == 'rdf_mapping') {
        // Move my_module_rdf_mapping() to the end of the list. module_implements()
        // 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.