Error message

You are browsing documentation for drupal 7.x, which is not supported anymore. Read the updated version of this page for drupal 11.x (the latest version).

function module_hook_info

Retrieves a list of hooks that are declared through hook_hook_info().

Return value

An associative array whose keys are hook names and whose values are an associative array containing a group name. The structure of the array is the same as the return value of hook_hook_info().

See also

hook_hook_info()

Related topics

Hooks
Allow modules to interact with the Drupal core.
2 calls to module_hook_info()
module_hook in includes/module.inc
Determines whether a module implements a hook.
module_implements in includes/module.inc
Determines which modules are implementing a hook.
1 string reference to 'module_hook_info'
module_implements in includes/module.inc
Determines which modules are implementing a hook.

File

includes/module.inc, line 851

Code

function module_hook_info () {
 // This function is indirectly invoked from bootstrap_invoke_all(), in which
 // case common.inc, subsystems, and modules are not loaded yet, so it does not
 // make sense to support hook groups resp. lazy-loaded include files prior to
 // full bootstrap.
 if (drupal_bootstrap (NULL, FALSE) != DRUPAL_BOOTSTRAP_FULL ) {
 return array();
 }
 $hook_info =& drupal_static (__FUNCTION__);
 if (!isset($hook_info)) {
 $hook_info = array();
 $cache = cache_get ('hook_info', 'cache_bootstrap');
 if ($cache === FALSE) {
 // Rebuild the cache and save it.
 // We can't use module_invoke_all() here or it would cause an infinite
 // loop.
 foreach (module_list () as $module) {
 $function = $module . '_hook_info';
 if (function_exists ($function)) {
 $result = $function();
 if (isset($result) && is_array ($result)) {
 $hook_info = array_merge_recursive ($hook_info, $result);
 }
 }
 }
 // We can't use drupal_alter() for the same reason as above.
 foreach (module_list () as $module) {
 $function = $module . '_hook_info_alter';
 if (function_exists ($function)) {
 $function($hook_info);
 }
 }
 cache_set ('hook_info', $hook_info, 'cache_bootstrap');
 }
 else {
 $hook_info = $cache->data ;
 }
 }
 return $hook_info;
}

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