File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / session / tests / 024.phpt
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:48:01 2012 UTC (12 years, 4 months 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, v5_3_10, HEAD
php

    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: 
   17:     function open($save_path, $session_name)
   18:     {
   19:         print "OPEN: $session_name\n";
   20:         return true;
   21:     }
   22:     function close()
   23:     {
   24:         return true;
   25:     }
   26:     function read($key)
   27:     {
   28:         print "READ: $key\n";
   29:         return $GLOBALS["hnd"]->data;
   30:     }
   31: 
   32:     function write($key, $val)
   33:     {
   34:         print "WRITE: $key, $val\n";
   35: 		$GLOBALS["hnd"]->data = $val;
   36:         return true;
   37:     }
   38: 
   39:     function destroy($key)
   40:     {
   41:         print "DESTROY: $key\n";
   42:         return true;
   43:     }
   44: 
   45:     function gc() { return true; }
   46: }
   47: 
   48: $hnd = new handler;
   49: 
   50: class foo {
   51:     public $bar = "ok";
   52:     function method() { $this->yes++; }
   53: }
   54: 
   55: session_set_save_handler(array($hnd, "open"), array($hnd, "close"), array($hnd, "read"), array($hnd, "write"), array($hnd, "destroy"), array($hnd, "gc"));
   56: 
   57: session_id("abtest");
   58: session_start();
   59: 
   60: $baz = $_SESSION['baz'];
   61: $arr = $_SESSION['arr'];
   62: $baz->method();
   63: $arr[3]->method();
   64: 
   65: var_dump($baz);
   66: var_dump($arr);
   67: 
   68: session_write_close();
   69: 
   70: session_set_save_handler(array($hnd, "open"), array($hnd, "close"), array($hnd, "read"), array($hnd, "write"), array($hnd, "destroy"), array($hnd, "gc"));
   71: session_start();
   72: 
   73: var_dump($baz);
   74: var_dump($arr);
   75: 
   76: session_destroy();
   77: ?>
   78: --EXPECTF--
   79: OPEN: PHPSESSID
   80: READ: abtest
   81: object(foo)#%d (2) {
   82:   ["bar"]=>
   83:   string(2) "ok"
   84:   ["yes"]=>
   85:   int(2)
   86: }
   87: array(1) {
   88:   [3]=>
   89:   object(foo)#%d (2) {
   90:     ["bar"]=>
   91:     string(2) "ok"
   92:     ["yes"]=>
   93:     int(2)
   94:   }
   95: }
   96: 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;}}
   97: OPEN: PHPSESSID
   98: READ: abtest
   99: object(foo)#%d (2) {
  100:   ["bar"]=>
  101:   string(2) "ok"
  102:   ["yes"]=>
  103:   int(2)
  104: }
  105: array(1) {
  106:   [3]=>
  107:   object(foo)#%d (2) {
  108:     ["bar"]=>
  109:     string(2) "ok"
  110:     ["yes"]=>
  111:     int(2)
  112:   }
  113: }
  114: DESTROY: abtest

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