1--TEST-- 2Check for serialization handler 3--SKIPIF-- 4<?php 5if (version_compare(PHP_VERSION, '5.2.0') < 0) { 6 echo "skip tests in PHP 5.2 or newer"; 7} 8if (!extension_loaded("session")) { 9 echo "skip needs session enabled"; 10} 11--FILE-- 12<?php 13if(!extension_loaded('msgpack')) { 14 dl('msgpack.' . PHP_SHLIB_SUFFIX); 15} 16 17$output = ''; 18 19function open($path, $name) { 20 return true; 21} 22 23function close() { 24 return true; 25} 26 27function read($id) { 28 global $output; 29 $output .= "read" . PHP_EOL; 30 return pack('H*', '81a3666f6f01'); 31} 32 33function write($id, $data) { 34 global $output; 35 $output .= "wrote: "; 36 $output .= bin2hex($data). PHP_EOL; 37 return true; 38} 39 40function destroy($id) { 41 return true; 42} 43 44function gc($time) { 45 return true; 46} 47 48class Foo { 49} 50 51class Bar { 52} 53 54ini_set('session.serialize_handler', 'msgpack'); 55 56session_set_save_handler('open', 'close', 'read', 'write', 'destroy', 'gc'); 57 58 59$db_object = new Foo(); 60$session_object = new Bar(); 61 62$v = session_start(); 63var_dump($v); 64$_SESSION['test'] = "foobar"; 65 66session_write_close(); 67 68echo $output; 69var_dump($_SESSION); 70?> 71--EXPECT-- 72bool(true) 73read 74wrote: 83c001a3666f6f01a474657374a6666f6f626172 75array(2) { 76 ["foo"]=> 77 int(1) 78 ["test"]=> 79 string(6) "foobar" 80} 81