1.20.x common.inc backdrop_page_footer()

Performs end-of-request tasks.

This function sets the page cache if appropriate, and allows modules to react to the closing of the page by calling hook_exit().


includes/common.inc, line 3142
Common functions that many Backdrop modules will need to reference.


function backdrop_page_footer() {

  // Commit the user session, if needed. This must be done before sending the
  // response, as it may set a cookie header.

  // In order to do post-delivery processing (e.g. cron run), we must close the
  // connection. Otherwise the connection will wait for PHP to finish before it
  // is used again in a subsequent request, such as for a JS or CSS file.
  if (!backdrop_is_background()) {
    header('Connection: close');

  // Get the contents of the output buffer, which was started in
  // _backdrop_bootstrap_page_header().
  $page_length = ob_get_length();
  $page_content = ob_get_clean();

  if (config_get('system.core', 'cache') && backdrop_page_is_cacheable()) {
    $cache = backdrop_page_create_cache($page_content);
    // If this is a background request, there is no need to print the page to a
    // buffer that will never be sent to the browser.
    if (!backdrop_is_background()) {
  else {
    // Do not print body content on HTTP HEAD requests. See
    // backdrop_serve_page_from_cache() for further explanation.
    if ($_SERVER['REQUEST_METHOD'] !== 'HEAD') {
      print $page_content;

  // If we're not already in a background request, flush to the browser.
  if (!backdrop_is_background() && $_SERVER['REQUEST_METHOD'] !== 'HEAD') {
    // End the request and send the response to the browser. This call has
    // error suppression on it as some PHP versions may require it (PHP 5.3)
    // but other PHP versions throw a warning (PHP 5.5).

    // Flushing for PHP-FPM based installations.
    if (function_exists('fastcgi_finish_request')) {
    // Flushing for Apache mod_php installations.
    else {

  // Then continue background tasks without holding up the rest of the request.
  if (isset($cache)) {