3 changed files with 282 additions and 0 deletions
-
60ext/spl/tests/observer_003.phpt
-
78ext/spl/tests/observer_004.phpt
-
144ext/spl/tests/observer_005.phpt
@ -0,0 +1,60 @@ |
|||
--TEST-- |
|||
SPL: SplObjectStorage serialization |
|||
--SKIPIF-- |
|||
<?php if (!extension_loaded("spl")) print "skip"; ?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
class TestClass |
|||
{ |
|||
public $test = 25; |
|||
|
|||
public function __construct($test = 42) |
|||
{ |
|||
$this->test = $test; |
|||
} |
|||
} |
|||
|
|||
$storage = new SplObjectStorage(); |
|||
|
|||
foreach(array(1,"2","foo",true) as $value) |
|||
{ |
|||
$storage->attach(new TestClass($value)); |
|||
} |
|||
|
|||
var_dump(count($storage)); |
|||
|
|||
foreach($storage as $object) |
|||
{ |
|||
var_dump($object->test); |
|||
} |
|||
|
|||
var_dump(serialize($storage)); |
|||
echo "===UNSERIALIZE===\n"; |
|||
|
|||
$storage2 = unserialize(serialize($storage)); |
|||
|
|||
var_dump(count($storage2)); |
|||
|
|||
foreach($storage2 as $object) |
|||
{ |
|||
var_dump($object->test); |
|||
} |
|||
|
|||
?> |
|||
===DONE=== |
|||
<?php exit(0); ?> |
|||
--EXPECTF-- |
|||
int(4) |
|||
int(1) |
|||
string(1) "2" |
|||
string(3) "foo" |
|||
bool(true) |
|||
string(%d) "%s" |
|||
===UNSERIALIZE=== |
|||
int(4) |
|||
int(1) |
|||
string(1) "2" |
|||
string(3) "foo" |
|||
bool(true) |
|||
===DONE=== |
|||
@ -0,0 +1,78 @@ |
|||
--TEST-- |
|||
SPL: SplObjectStorage serialization & overloading |
|||
--SKIPIF-- |
|||
<?php if (!extension_loaded("spl")) print "skip"; ?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
class TestClass |
|||
{ |
|||
public $test = 25; |
|||
|
|||
public function __construct($test = 42) |
|||
{ |
|||
$this->test = $test; |
|||
} |
|||
} |
|||
|
|||
class MyStorage extends SplObjectStorage |
|||
{ |
|||
public $bla = 25; |
|||
|
|||
public function __construct($bla = 26) |
|||
{ |
|||
$this->bla = $bla; |
|||
} |
|||
} |
|||
|
|||
$storage = new MyStorage(); |
|||
|
|||
foreach(array(1,2) as $value) |
|||
{ |
|||
$storage->attach(new TestClass($value)); |
|||
} |
|||
|
|||
var_dump(count($storage)); |
|||
|
|||
foreach($storage as $object) |
|||
{ |
|||
var_dump($object->test); |
|||
} |
|||
|
|||
var_dump($storage); |
|||
|
|||
var_dump(serialize($storage)); |
|||
echo "===UNSERIALIZE===\n"; |
|||
|
|||
$storage2 = unserialize(serialize($storage)); |
|||
|
|||
var_dump(count($storage2)); |
|||
|
|||
foreach($storage2 as $object) |
|||
{ |
|||
var_dump($object->test); |
|||
} |
|||
|
|||
var_dump($storage2); |
|||
|
|||
?> |
|||
===DONE=== |
|||
<?php exit(0); ?> |
|||
--EXPECTF-- |
|||
int(2) |
|||
int(1) |
|||
int(2) |
|||
object(MyStorage)#%d (1) { |
|||
["bla"]=> |
|||
int(26) |
|||
} |
|||
string(%d) "%s" |
|||
===UNSERIALIZE=== |
|||
int(2) |
|||
int(1) |
|||
int(2) |
|||
object(MyStorage)#%d (1) { |
|||
["bla"]=> |
|||
int(26) |
|||
} |
|||
===DONE=== |
|||
@ -0,0 +1,144 @@ |
|||
--TEST-- |
|||
SPL: SplObjectStorage serialization & visibility |
|||
--SKIPIF-- |
|||
<?php if (!extension_loaded("spl")) print "skip"; ?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
class TestClass |
|||
{ |
|||
public $def = 24; |
|||
public $pub = 25; |
|||
protected $pro = 26; |
|||
private $pri = 27; |
|||
|
|||
public function __construct($pub = 42, $pro = 43, $pri = 44) |
|||
{ |
|||
$this->pub = $pub; |
|||
$this->pro = $pro; |
|||
$this->pri = $pri; |
|||
} |
|||
} |
|||
|
|||
class ExtTestClass |
|||
{ |
|||
} |
|||
|
|||
class MyStorage extends SplObjectStorage |
|||
{ |
|||
public $def = 24; |
|||
public $pub = 25; |
|||
protected $pro = 26; |
|||
private $pri = 27; |
|||
|
|||
public function __construct($pub = 52, $pro = 53, $pri = 54) |
|||
{ |
|||
$this->pub = $pub; |
|||
$this->pro = $pro; |
|||
$this->pri = $pri; |
|||
} |
|||
} |
|||
|
|||
class ExtStorage extends MyStorage |
|||
{ |
|||
} |
|||
|
|||
$storage = new MyStorage(1,2,3); |
|||
|
|||
foreach(array(array(4,5,6),array(7,8,9)) as $value) |
|||
{ |
|||
$storage->attach(new TestClass($value[0], $value[1], $value[2])); |
|||
} |
|||
|
|||
var_dump(count($storage)); |
|||
|
|||
foreach($storage as $object) |
|||
{ |
|||
var_dump($object); |
|||
} |
|||
|
|||
var_dump($storage); |
|||
|
|||
var_dump(serialize($storage)); |
|||
echo "===UNSERIALIZE===\n"; |
|||
|
|||
$storage2 = unserialize(serialize($storage)); |
|||
|
|||
var_dump(count($storage2)); |
|||
|
|||
foreach($storage2 as $object) |
|||
{ |
|||
var_dump($object); |
|||
} |
|||
|
|||
var_dump($storage2); |
|||
|
|||
?> |
|||
===DONE=== |
|||
<?php exit(0); ?> |
|||
--EXPECTF-- |
|||
int(2) |
|||
object(TestClass)#%d (4) { |
|||
["def"]=> |
|||
int(24) |
|||
["pub"]=> |
|||
int(4) |
|||
["pro:protected"]=> |
|||
int(5) |
|||
["pri:private"]=> |
|||
int(6) |
|||
} |
|||
object(TestClass)#%d (4) { |
|||
["def"]=> |
|||
int(24) |
|||
["pub"]=> |
|||
int(7) |
|||
["pro:protected"]=> |
|||
int(8) |
|||
["pri:private"]=> |
|||
int(9) |
|||
} |
|||
object(MyStorage)#%d (4) { |
|||
["def"]=> |
|||
int(24) |
|||
["pub"]=> |
|||
int(1) |
|||
["pro:protected"]=> |
|||
int(2) |
|||
["pri:private"]=> |
|||
int(3) |
|||
} |
|||
string(%d) "%s" |
|||
===UNSERIALIZE=== |
|||
int(2) |
|||
object(TestClass)#%d (4) { |
|||
["def"]=> |
|||
int(24) |
|||
["pub"]=> |
|||
int(4) |
|||
["pro:protected"]=> |
|||
int(5) |
|||
["pri:private"]=> |
|||
int(6) |
|||
} |
|||
object(TestClass)#%d (4) { |
|||
["def"]=> |
|||
int(24) |
|||
["pub"]=> |
|||
int(7) |
|||
["pro:protected"]=> |
|||
int(8) |
|||
["pri:private"]=> |
|||
int(9) |
|||
} |
|||
object(MyStorage)#%d (4) { |
|||
["def"]=> |
|||
int(24) |
|||
["pub"]=> |
|||
int(1) |
|||
["pro:protected"]=> |
|||
int(2) |
|||
["pri:private"]=> |
|||
int(3) |
|||
} |
|||
===DONE=== |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue