function drupal_register_shutdown_function
Same name in other branches
- 7.x includes/bootstrap.inc \drupal_register_shutdown_function()
- 9 core/includes/bootstrap.inc \drupal_register_shutdown_function()
- 8.9.x core/includes/bootstrap.inc \drupal_register_shutdown_function()
- 11.x core/includes/bootstrap.inc \drupal_register_shutdown_function()
Registers a function for execution on shutdown.
Wrapper for register_shutdown_function() that catches thrown exceptions to avoid "Exception thrown without a stack frame in Unknown".
Parameters
callable $callback: The shutdown function to register.
...: Additional arguments to pass to the shutdown function.
Return value
array Array of shutdown functions to be executed.
See also
Related topics
14 calls to drupal_register_shutdown_function()
- BrowserTestBase::tearDown in core/
tests/ Drupal/ Tests/ BrowserTestBase.php - Database::commitAllOnShutdown in core/
lib/ Drupal/ Core/ Database/ Database.php - Calls commitAll() on all the open connections.
- DatabaseLockBackend::__construct in core/
lib/ Drupal/ Core/ Lock/ DatabaseLockBackend.php - Constructs a new DatabaseLockBackend.
- FunctionalTestSetupTrait::prepareEnvironment in core/
lib/ Drupal/ Core/ Test/ FunctionalTestSetupTrait.php - Prepares the current environment for running the test.
- KernelTestBase::assertPostConditions in core/
tests/ Drupal/ KernelTests/ KernelTestBase.php
2 string references to 'drupal_register_shutdown_function'
- BrowserTestBase::tearDown in core/
tests/ Drupal/ Tests/ BrowserTestBase.php - Database::commitAllOnShutdown in core/
lib/ Drupal/ Core/ Database/ Database.php - Calls commitAll() on all the open connections.
File
-
core/
includes/ bootstrap.inc, line 513
Code
function &drupal_register_shutdown_function($callback = NULL) {
// We cannot use drupal_static() here because the static cache is reset during
// batch processing, which breaks batch handling.
static $callbacks = [];
if (isset($callback)) {
// Only register the internal shutdown function once.
if (empty($callbacks)) {
register_shutdown_function('_drupal_shutdown_function');
}
$args = func_get_args();
// Remove $callback from the arguments.
unset($args[0]);
// Save callback and arguments
$callbacks[] = [
'callback' => $callback,
'arguments' => $args,
];
}
return $callbacks;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.