By Evert on 2007-11-05 17:56:51
I needed to figure out in what order PHP shuts down, after the end of a script has been reached, so I created a small testing script. Maybe this is of use for someone else trying to google this like I tried.
<?php
// Testing shutdown sequence
function shutdown() {
echo "register_shutdown_function\n";
}
register_shutdown_function('shutdown');
class MyClass {
function __destruct() {
echo "Object destructor\n";
}
}
function obcallback($buffer) {
$buffer .= "Output buffer callback\n";
return $buffer;
}
ob_start('obcallback');
$myObject = new MyClass;
function dummy() { }
function sessionclose() {
echo "Session close\n";
}
function sessionwrite() {
echo "Session write\n";
}
session_set_save_handler('dummy','sessionclose','dummy','sessionwrite','dummy','dummy');
session_start();
?>
The output, on PHP 5.2.0 on the cli is:
register_shutdown_function
Object destructor
Output buffer callback
Session write
Session close
I was mostly interested in this because I wanted to work with a custom session handler. This means I can basically not use objects in combination with session handlers, unless I don't rely on $this.