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.
