8000 [VarDumper] Enhance dumping __PHP_Incomplete_Class objects · symfony/symfony@173dc19 · GitHub
[go: up one dir, main page]

Skip to content

Commit 173dc19

Browse files
[VarDumper] Enhance dumping __PHP_Incomplete_Class objects
1 parent 5cc9ed2 commit 173dc19

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

src/Symfony/Component/VarDumper/Caster/Caster.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111

1212
namespace Symfony\Component\VarDumper\Caster;
1313

14+
use Symfony\Component\VarDumper\Cloner\Stub;
15+
1416
/**
1517
* Helper for filtering out properties in casters.
1618
*
@@ -119,4 +121,10 @@ public static function filter(array $a, $filter, array $listedProperties = array
119121

120122
return $a;
121123
}
124+
125+
public static function castPhpIncompleteClass(\__PHP_Incomplete_Class $c, array $a, Stub $stub, $isNested)
126+
{
127+
$stub->class .= '('.$a[self::PREFIX_DYNAMIC.'__PHP_Incomplete_Class_Name'].')';
128+
return array();
129+
}
122130
}

src/Symfony/Component/VarDumper/Cloner/AbstractCloner.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
abstract class AbstractCloner implements ClonerInterface
2323
{
2424
public static $defaultCasters = array(
25+
'__PHP_Incomplete_Class' => 'Symfony\Component\VarDumper\Caster\Caster::castPhpIncompleteClass',
26+
2527
'Symfony\Component\VarDumper\Caster\CutStub' => 'Symfony\Component\VarDumper\Caster\StubCaster::castStub',
2628
'Symfony\Component\VarDumper\Caster\CutArrayStub' => 'Symfony\Component\VarDumper\Caster\StubCaster::castCutArray',
2729
'Symfony\Component\VarDumper\Caster\ConstStub' => 'Symfony\Component\VarDumper\Caster\StubCaster::castStub',

src/Symfony/Component/VarDumper/Tests/CliDumperTest.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,21 @@ public function testBuggyRefs()
461461
);
462462
}
463463

464+
public function testIncompleteClass()
465+
{
466+
$unserializeCallbackHandler = ini_set('unserialize_callback_func', null);
467+
$var = unserialize('O:8:"Foo\Buzz":0:{}');
468+
ini_set('unserialize_callback_func', $unserializeCallbackHandler);
469+
470+
$this->assertDumpMatchesFormat(
471+
<<<EOTXT
472+
__PHP_Incomplete_Class(Foo\Buzz) {}
473+
EOTXT
474+
,
475+
$var
476+
);
477+
}
478+
464479
private function getSpecialVars()
465480
{
466481
foreach (array_keys($GLOBALS) as $var) {

0 commit comments

Comments
 (0)
0