Annotation of embedaddon/php/ext/session/tests/session_set_save_handler_class_003.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test session_set_save_handler() : inheritance
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() : inheritance ***\n";
20:
21: class MySession3 extends SessionHandler {
22: public $i = 0;
23: public function open($path, $name) {
24: ++$this->i;
25: return parent::open($path, $name);
26: }
27: public function read($key) {
28: ++$this->i;
29: return parent::read($key);
30: }
31: }
32:
33: class MySession4 extends MySession3 {
34: public function write($id, $data) {
35: $this->i = "hai";
36: return parent::write($id, $data);
37: }
38: }
39:
40: $handler = new MySession3;
41: session_set_save_handler($handler);
42: session_start();
43:
44: $_SESSION['foo'] = "hello";
45:
46: session_write_close();
47: session_unset();
48:
49: session_start();
50:
51: var_dump($_SESSION, $handler->i);
52:
53: session_write_close();
54: session_unset();
55:
56: $handler = new MySession4;
57: session_set_save_handler($handler);
58:
59: session_start();
60:
61: session_write_close();
62: session_unset();
63:
64: var_dump(session_id(), $_SESSION, $handler->i);
65:
66: --EXPECTF--
67: *** Testing session_set_save_handler() : inheritance ***
68: array(1) {
69: ["foo"]=>
70: string(5) "hello"
71: }
72: int(4)
73: string(%d) "%s"
74: array(1) {
75: ["foo"]=>
76: string(5) "hello"
77: }
78: string(3) "hai"
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>