function hook_exit

7 system.api.php hook_exit($destination = NULL)
4.6 core.php hook_exit($destination = NULL)
4.7 core.php hook_exit($destination = NULL)
5 core.php hook_exit($destination = NULL)
6 core.php hook_exit($destination = NULL)

Perform cleanup tasks.

This hook is run at the end of each page request. It is often used for page logging and printing out debugging information.

Only use this hook if your code must run even for cached page views. If you have code which must run once on all non cached pages, use hook_init instead. Thats the usual case. If you implement this hook and see an error like 'Call to undefined function', it is likely that you are depending on the presence of a module which has not been loaded yet. It is not loaded because Drupal is still in bootstrap mode.

Parameters

$destination: If this hook is invoked as part of a drupal_goto() call, then this argument will be a fully-qualified URL that is the destination of the redirect. Modules may use this to react appropriately; for example, nothing should be output in this case, because PHP will then throw a "headers cannot be modified" error when attempting the redirection.

Return value

None.

Related topics

2 functions implement hook_exit()

Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.

statistics_exit in modules/statistics/statistics.module
Implementation of hook_exit().
throttle_exit in modules/throttle/throttle.module
Implementation of hook_exit().
4 invocations of hook_exit()
drupal_goto in includes/common.inc
Send the user to a different Drupal page.
drupal_page_footer in includes/common.inc
Perform end-of-request tasks.
system_performance_settings in modules/system/system.admin.inc
Form builder; Configure site performance settings.
_drupal_bootstrap in includes/bootstrap.inc

File

developer/hooks/core.php, line 516
These are the hooks that are invoked by the Drupal core.

Code

function hook_exit($destination = NULL) {
  db_query('UPDATE {counter} SET hits = hits + 1 WHERE type = 1');
}

Comments

It should be noted that this hook will not be called during cron runs triggered by cron.php while it will be executed during cron triggered "manually" (e.g. through the link provided in the admin UI). Maybe this will help someone save some time :-).

If a module implements hook_boot or hook_exit, their bootstrap bit gets set to 1 by module_rebuild_cache, which - unless I'm wrong - loads them during bootstrap, when even core drupal functions may be unavailable, so using them outside of your functions can cause a WSOD.