original_string: public function shutdown()
      {
          // Prevent user abort allowing onShutdown event to run without interruptions.
          if (\function_exists('ignore_user_abort')) {
              @ignore_user_abort(true);
          }
  
          // Close the session allowing new requests to be handled.
          if (isset($this['session'])) {
              $this['session']->close();
          }
  
          if ($this['config']->get('system.debugger.shutdown.close_connection', true)) {
              // Flush the response and close the connection to allow time consuming tasks to be performed without leaving
              // the connection to the client open. This will make page loads to feel much faster.
  
              // FastCGI allows us to flush all response data to the client and finish the request.
              $success = \function_exists('fastcgi_finish_request') ? @fastcgi_finish_request() : false;
  
              if (!$success) {
                  // Unfortunately without FastCGI there is no way to force close the connection.
                  // We need to ask browser to close the connection for us.
                  if ($this['config']->get('system.cache.gzip')) {
                      // Flush gzhandler buffer if gzip setting was enabled.
                      ob_end_flush();
  
                  } else {
                      // Without gzip we have no other choice than to prevent server from compressing the output.
                      // This action turns off mod_deflate which would prevent us from closing the connection.
                      if ($this['config']->get('system.cache.allow_webserver_gzip')) {
                          header('Content-Encoding: identity');
                      } else {
                          header('Content-Encoding: none');
                      }
  
                  }
  
  
                  // Get length and close the connection.
                  header('Content-Length: ' . ob_get_length());
                  header('Connection: close');
  
                  ob_end_flush();
                  @ob_flush();
                  flush();
              }
          }
  
          // Run any time consuming tasks.
          $this->fireEvent('onShutdown');
      }
code: public function shutdown()
      {
          // Prevent user abort allowing onShutdown event to run without interruptions.
          if (\function_exists('ignore_user_abort')) {
              @ignore_user_abort(true);
          }
  
          // Close the session allowing new requests to be handled.
          if (isset($this['session'])) {
              $this['session']->close();
          }
  
          if ($this['config']->get('system.debugger.shutdown.close_connection', true)) {
              // Flush the response and close the connection to allow time consuming tasks to be performed without leaving
              // the connection to the client open. This will make page loads to feel much faster.
  
              // FastCGI allows us to flush all response data to the client and finish the request.
              $success = \function_exists('fastcgi_finish_request') ? @fastcgi_finish_request() : false;
  
              if (!$success) {
                  // Unfortunately without FastCGI there is no way to force close the connection.
                  // We need to ask browser to close the connection for us.
                  if ($this['config']->get('system.cache.gzip')) {
                      // Flush gzhandler buffer if gzip setting was enabled.
                      ob_end_flush();
  
                  } else {
                      // Without gzip we have no other choice than to prevent server from compressing the output.
                      // This action turns off mod_deflate which would prevent us from closing the connection.
                      if ($this['config']->get('system.cache.allow_webserver_gzip')) {
                          header('Content-Encoding: identity');
                      } else {
                          header('Content-Encoding: none');
                      }
  
                  }
  
  
                  // Get length and close the connection.
                  header('Content-Length: ' . ob_get_length());
                  header('Connection: close');
  
                  ob_end_flush();
                  @ob_flush();
                  flush();
              }
          }
  
          // Run any time consuming tasks.
          $this->fireEvent('onShutdown');
      }
code_tokens: public function shutdown ( ) { // Prevent user abort allowing onShutdown event to run without interruptions. if ( \ function_exists ( 'ignore_user_abort' ) ) { @ ignore_user_abort ( true ) ; } // Close the session allowing new requests to be handled. if ( isset ( $ this [ 'session' ] ) ) { $ this [ 'session' ] -> close ( ) ; } if ( $ this [ 'config' ] -> get ( 'system.debugger.shutdown.close_connection' , true ) ) { // Flush the response and close the connection to allow time consuming tasks to be performed without leaving // the connection to the client open. This will make page loads to feel much faster. // FastCGI allows us to flush all response data to the client and finish the request. $ success = \ function_exists ( 'fastcgi_finish_request' ) ? @ fastcgi_finish_request ( ) : false ; if ( ! $ success ) { // Unfortunately without FastCGI there is no way to force close the connection. // We need to ask browser to close the connection for us. if ( $ this [ 'config' ] -> get ( 'system.cache.gzip' ) ) { // Flush gzhandler buffer if gzip setting was enabled. ob_end_flush ( ) ; } else { // Without gzip we have no other choice than to prevent server from compressing the output. // This action turns off mod_deflate which would prevent us from closing the connection. if ( $ this [ 'config' ] -> get ( 'system.cache.allow_webserver_gzip' ) ) { header ( 'Content-Encoding: identity' ) ; } else { header ( 'Content-Encoding: none' ) ; } } // Get length and close the connection. header ( 'Content-Length: ' . ob_get_length ( ) ) ; header ( 'Connection: close' ) ; ob_end_flush ( ) ; @ ob_flush ( ) ; flush ( ) ; } } // Run any time consuming tasks. $ this -> fireEvent ( 'onShutdown' ) ; }
docstring: Set the final content length for the page and flush the buffer
docstring_tokens: Set the final content length for the page and flush the buffer