function module_hook_info
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
Related topics
File
- includes/module.inc, line 842
- API for loading and interacting with Drupal modules.
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; }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/includes!module.inc/function/module_hook_info/7.x