shutdown-sequence.php

Just a simple PHP file to show PHP’s shutdown / object destruction sequence.

Output should be as follows:

dummy1
dummy2
register_shutdown_function
Object destructor
Output buffer callback
Session write
Session close

<?php

    header('Content-Type: text/plain');
    // 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() {
        echo "dummy\n";
        return true;
    }

    function sessionclose() {
        echo "Session close\n";
        return true;
    }

    function sessionwrite() {
        echo "Session write\n";
        return true;
    }
    session_set_save_handler(function() {echo "dummy1\n";return true;},'sessionclose',function() {echo "dummy2\n";return true;},'sessionwrite',function() {echo "dummy3\n";return true;},function() {echo "dummy4\n";return true;});
    session_start();

?>