PHP 8.2.30
Preview: 028.phpt Size: 3.51 KB
//opt/alt/tests/alt-php83-pecl-msgpack_2.2.0-1.el8/tests/028.phpt

--TEST--
Serialize object into session, full set
--SKIPIF--
<?php
if ((version_compare(PHP_VERSION, '5.2.13') <= 0) ||
    (version_compare(PHP_VERSION, '5.3.0') >= 0 &&
     version_compare(PHP_VERSION, '5.3.2') <= 0)) {
    echo "skip tests in PHP 5.2.14/5.3.3 or newer";
}
if (!extension_loaded("session")) {
   echo "skip needs session enabled";
}
--FILE--
<?php
if(!extension_loaded('msgpack')) {
    dl('msgpack.' . PHP_SHLIB_SUFFIX);
}

class Foo {
    private static $s1 = array();
    protected static $s2 = array();
    public static $s3 = array();

    private $d1;
    protected $d2;
    public $d3;

    public function __construct($foo) {
        $this->d1 = $foo;
        $this->d2 = $foo;
        $this->d3 = $foo;
    }
}

class Bar {
    private static $s1 = array();
    protected static $s2 = array();
    public static $s3 = array();

    public $d1;
    private $d2;
    protected $d3;

    public function __construct() {
    }

    public function set($foo) {
        $this->d1 = $foo;
        $this->d2 = $foo;
        $this->d3 = $foo;
    }
}

$output = '';

function open($path, $name) {
    return true;
}

function close() {
    return true;
}

function read($id) {
    global $output;
    $output .= "read" . PHP_EOL;
    $a = new Bar();
    $b = new Foo($a);
    $a->set($b);
    $session = array('old' => $b);
    return msgpack_serialize($session);
}

function write($id, $data) {
    global $output;
    $output .= "write: ";
    $output .= bin2hex($data) . PHP_EOL;
    return true;
}

function destroy($id) {
    return true;
}

function gc($time) {
    return true;
}

ini_set('session.serialize_handler', 'msgpack');

session_set_save_handler('open', 'close', 'read', 'write', 'destroy', 'gc');

session_start();

$_SESSION['test'] = "foobar";
$a = new Bar();
$b = new Foo($a);
$a->set($b);
$_SESSION['new'] = $a;

session_write_close();

echo $output;
var_dump($_SESSION);
?>
--EXPECTF--
read
write: 84c001a36f6c6484c0a3466f6fa700466f6f00643184c0a3426172a2643182c0040002a70042617200643282c0040002a5002a00643382c0040002a5002a00643282c0040003a2643382c0040003a474657374a6666f6f626172a36e657784c0a3426172a2643184c0a3466f6fa700466f6f00643182c0040009a5002a00643282c0040009a2643382c0040009a70042617200643282c004000aa5002a00643382c004000a
array(3) {
  ["old"]=>
  object(Foo)#3 (3) {
    [%r"?d1"?:("Foo":)?private"?%r]=>
    object(Bar)#4 (3) {
      ["d1"]=>
      *RECURSION*
      [%r"?d2"?:("Bar":)?private"?%r]=>
      *RECURSION*
      [%r"?d3"?:protected"?%r]=>
      *RECURSION*
    }
    [%r"?d2"?:protected"?%r]=>
    object(Bar)#4 (3) {
      ["d1"]=>
      *RECURSION*
      [%r"?d2"?:("Bar":)?private"?%r]=>
      *RECURSION*
      [%r"?d3"?:protected"?%r]=>
      *RECURSION*
    }
    ["d3"]=>
    object(Bar)#4 (3) {
      ["d1"]=>
      *RECURSION*
      [%r"?d2"?:("Bar":)?private"?%r]=>
      *RECURSION*
      [%r"?d3"?:protected"?%r]=>
      *RECURSION*
    }
  }
  ["test"]=>
  string(6) "foobar"
  ["new"]=>
  object(Bar)#5 (3) {
    ["d1"]=>
    object(Foo)#6 (3) {
      [%r"?d1"?:("Foo":)?private"?%r]=>
      *RECURSION*
      [%r"?d2"?:protected"?%r]=>
      *RECURSION*
      ["d3"]=>
      *RECURSION*
    }
    [%r"?d2"?:("Bar":)?private"?%r]=>
    object(Foo)#6 (3) {
      [%r"?d1"?:("Foo":)?private"?%r]=>
      *RECURSION*
      [%r"?d2"?:protected"?%r]=>
      *RECURSION*
      ["d3"]=>
      *RECURSION*
    }
    [%r"?d3"?:protected"?%r]=>
    object(Foo)#6 (3) {
      [%r"?d1"?:("Foo":)?private"?%r]=>
      *RECURSION*
      [%r"?d2"?:protected"?%r]=>
      *RECURSION*
      ["d3"]=>
      *RECURSION*
    }
  }
}

Directory Contents

Dirs: 0 × Files: 132

Name Size Perms Modified Actions
203 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
489 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
562 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
861 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
542 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
604 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.06 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.20 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.47 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.43 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
804 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
963 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
892 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
887 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1009 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1016 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.02 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.16 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
795 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.54 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
841 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
606 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.12 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.26 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
854 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
556 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.32 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
2.09 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.59 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.55 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.22 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.51 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
934 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
2.26 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
2.24 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.28 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
965 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
723 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
886 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
906 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
957 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.09 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.08 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.05 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
964 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.58 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.62 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.69 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.15 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.24 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.65 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.72 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.23 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.33 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.27 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.31 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
5.19 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
5.19 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.79 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.85 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.75 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.74 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.82 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.72 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.72 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.02 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
4.92 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
5.22 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.69 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.82 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.52 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.65 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.74 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.88 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.57 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.70 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.60 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.85 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.98 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.68 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.81 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
7.71 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.46 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.47 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.66 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.67 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.78 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.79 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
2.34 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
2.34 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.18 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.19 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.39 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.54 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.55 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.74 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.75 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.86 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.87 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
2.41 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
2.42 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.26 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.26 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.47 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.41 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.42 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.61 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.62 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.73 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.74 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
2.29 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
2.29 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.13 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.13 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
3.34 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.13 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.04 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
2.45 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
2.45 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
409 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
652 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
311 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
906 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
536 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
428 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.11 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
512 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
751 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.11 KB lrw-r--r-- 2024-03-20 16:29:38
Edit Download
402 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
358 B lrw-r--r-- 2024-03-20 16:29:38
Edit Download
1.18 MB lrw-r--r-- 2024-03-20 16:29:38
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).