Annotation of embedaddon/php/ext/session/tests/session_set_save_handler_class_008.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test session_set_save_handler() : manual shutdown
! 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 ***\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: echo "done\n";
! 56: ob_end_flush();
! 57: ?>
! 58: --EXPECTF--
! 59: *** Testing session_set_save_handler() : manual shutdown ***
! 60: (#1) constructor called
! 61: (#1) finish called %s
! 62: (#1) writing %s = foo|s:3:"bar";
! 63: (#1) closing %s
! 64: done
! 65: (#1) destructor called
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>