File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / session / tests / 004.phpt
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:34:42 2012 UTC (12 years, 1 month ago) by misho
Branches: php, MAIN
CVS tags: v5_4_3elwix, v5_4_29p0, v5_4_29, v5_4_20p0, v5_4_20, v5_4_17p0, v5_4_17, HEAD
php 5.4.3+patches

    1: --TEST--
    2: session_set_save_handler test
    3: --SKIPIF--
    4: <?php include('skipif.inc'); ?>
    5: --INI--
    6: session.use_cookies=0
    7: session.cache_limiter=
    8: session.name=PHPSESSID
    9: session.serialize_handler=php
   10: --FILE--
   11: <?php
   12: error_reporting(E_ALL);
   13: 
   14: class handler {
   15:     public $data = 'baz|O:3:"foo":2:{s:3:"bar";s:2:"ok";s:3:"yes";i:1;}arr|a:1:{i:3;O:3:"foo":2:{s:3:"bar";s:2:"ok";s:3:"yes";i:1;}}';
   16:     function open($save_path, $session_name)
   17:     {
   18:         print "OPEN: $session_name\n";
   19:         return true;
   20:     }
   21:     function close()
   22:     {
   23:         return true;
   24:     }
   25:     function read($key)
   26:     {
   27:         print "READ: $key\n";
   28:         return $GLOBALS["hnd"]->data;
   29:     }
   30: 
   31:     function write($key, $val)
   32:     {
   33:         print "WRITE: $key, $val\n";
   34: 		$GLOBALS["hnd"]->data = $val;
   35:         return true;
   36:     }
   37: 
   38:     function destroy($key)
   39:     {
   40:         print "DESTROY: $key\n";
   41:         return true;
   42:     }
   43: 
   44:     function gc() { return true; }
   45: }
   46: 
   47: $hnd = new handler;
   48: 
   49: class foo {
   50:     public $bar = "ok";
   51:     function method() { $this->yes++; }
   52: }
   53: 
   54: session_set_save_handler(array($hnd, "open"), array($hnd, "close"), array($hnd, "read"), array($hnd, "write"), array($hnd, "destroy"), array($hnd, "gc"));
   55: 
   56: session_id("abtest");
   57: session_start();
   58: $_SESSION["baz"]->method();
   59: $_SESSION["arr"][3]->method();
   60: 
   61: var_dump($_SESSION["baz"]);
   62: var_dump($_SESSION["arr"]);
   63: 
   64: session_write_close();
   65: 
   66: session_set_save_handler(array($hnd, "open"), array($hnd, "close"), array($hnd, "read"), array($hnd, "write"), array($hnd, "destroy"), array($hnd, "gc"));
   67: session_start();
   68: 
   69: var_dump($_SESSION["baz"]);
   70: var_dump($_SESSION["arr"]);
   71: 
   72: session_destroy();
   73: ?>
   74: --EXPECT--
   75: OPEN: PHPSESSID
   76: READ: abtest
   77: object(foo)#2 (2) {
   78:   ["bar"]=>
   79:   string(2) "ok"
   80:   ["yes"]=>
   81:   int(2)
   82: }
   83: array(1) {
   84:   [3]=>
   85:   object(foo)#3 (2) {
   86:     ["bar"]=>
   87:     string(2) "ok"
   88:     ["yes"]=>
   89:     int(2)
   90:   }
   91: }
   92: WRITE: abtest, baz|O:3:"foo":2:{s:3:"bar";s:2:"ok";s:3:"yes";i:2;}arr|a:1:{i:3;O:3:"foo":2:{s:3:"bar";s:2:"ok";s:3:"yes";i:2;}}
   93: OPEN: PHPSESSID
   94: READ: abtest
   95: object(foo)#3 (2) {
   96:   ["bar"]=>
   97:   string(2) "ok"
   98:   ["yes"]=>
   99:   int(2)
  100: }
  101: array(1) {
  102:   [3]=>
  103:   object(foo)#2 (2) {
  104:     ["bar"]=>
  105:     string(2) "ok"
  106:     ["yes"]=>
  107:     int(2)
  108:   }
  109: }
  110: DESTROY: abtest

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