Annotation of embedaddon/php/ext/session/tests/session_set_save_handler_class_007.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Test session_set_save_handler() : manual shutdown, reopen
        !             3: --INI--
        !             4: session.save_handler=files
        !             5: session.name=PHPSESSID
        !             6: --SKIPIF--
        !             7: <?php include('skipif.inc'); ?>
        !             8: --FILE--
        !             9: <?php
        !            10: 
        !            11: ob_start();
        !            12: 
        !            13: /* 
        !            14:  * Prototype : bool session_set_save_handler(SessionHandler $handler [, bool $register_shutdown_function = true])
        !            15:  * Description : Sets user-level session storage functions
        !            16:  * Source code : ext/session/session.c 
        !            17:  */
        !            18: 
        !            19: echo "*** Testing session_set_save_handler() : manual shutdown, reopen ***\n";
        !            20: 
        !            21: class MySession extends SessionHandler {
        !            22:        public $num;
        !            23:        public function __construct($num) {
        !            24:                $this->num = $num;
        !            25:                echo "(#$this->num) constructor called\n";
        !            26:        }
        !            27:        public function __destruct() {
        !            28:                echo "(#$this->num) destructor called\n";
        !            29:        }
        !            30:        public function finish() {
        !            31:                $id = session_id();
        !            32:                echo "(#$this->num) finish called $id\n";
        !            33:                session_write_close();
        !            34:        }
        !            35:        public function write($id, $data) {
        !            36:                echo "(#$this->num) writing $id = $data\n";
        !            37:                return parent::write($id, $data);
        !            38:        }
        !            39:        public function close() {
        !            40:                $id = session_id();
        !            41:                echo "(#$this->num) closing $id\n";
        !            42:                return parent::close();
        !            43:        }
        !            44: }
        !            45: 
        !            46: $handler = new MySession(1);
        !            47: session_set_save_handler($handler);
        !            48: session_start();
        !            49: 
        !            50: $_SESSION['foo'] = 'bar';
        !            51: 
        !            52: // explicit close
        !            53: $handler->finish();
        !            54: 
        !            55: $handler = new MySession(2);
        !            56: session_set_save_handler($handler);
        !            57: session_start();
        !            58: 
        !            59: // implicit close (called by shutdown function)
        !            60: echo "done\n";
        !            61: ob_end_flush();
        !            62: ?>
        !            63: --EXPECTF--
        !            64: *** Testing session_set_save_handler() : manual shutdown, reopen ***
        !            65: (#1) constructor called
        !            66: (#1) finish called %s
        !            67: (#1) writing %s = foo|s:3:"bar";
        !            68: (#1) closing %s
        !            69: (#2) constructor called
        !            70: (#1) destructor called
        !            71: done
        !            72: (#2) writing %s = foo|s:3:"bar";
        !            73: (#2) closing %s
        !            74: (#2) destructor called

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>