10000 [VarDumper] Use ClassStub for reflected types · symfony/symfony@68536da · GitHub
[go: up one dir, main page]

Skip to content

Commit 68536da

Browse files
[VarDumper] Use ClassStub for reflected types
1 parent da3ff6c commit 68536da

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

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

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,12 @@ public static function castFunctionAbstract(\ReflectionFunctionAbstract $c, arra
157157
));
158158

159159
if (isset($a[$prefix.'returnType'])) {
160-
$a[$prefix.'returnType'] = (string) $a[$prefix.'returnType'];
160+
$k = (string) $a[$prefix.'returnType'];
161+
$v = ltrim($k, '?');
162+
$a[$prefix.'returnType'] = new ClassStub($k, array(class_exists($v, false) || interface_exists($v, false) || trait_exists($v, false) ? $v : '', ''));
163+
}
164+
if (isset($a[$prefix.'class'])) {
165+
$a[$prefix.'class'] = new ClassStub($a[$prefix.'class']);
161166
}
162167
if (isset($a[$prefix.'this'])) {
163168
$a[$prefix.'this'] = new CutStub($a[$prefix.'this']);
@@ -231,6 +236,10 @@ public static function castParameter(\ReflectionParameter $c, array $a, Stub $st
231236
$a[$prefix.'typeHint'] = $m[1];
232237
}
233238
}
239+
if (isset($a[$prefix.'typeHint'])) {
240+
$v = ltrim($a[$prefix.'typeHint'], '?');
241+
$a[$prefix.'typeHint'] = new ClassStub($a[$prefix.'typeHint'], array(class_exists($v, false) || interface_exists($v, false) || trait_exists($v, false) ? $v : '', ''));
242+
}
234243

235244
try {
236245
$a[$prefix.'default'] = $v = $c->getDefaultValue();

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ public function testGet()
7575
+"<span class=sf-dump-public title="Runtime added dynamic property">bar</span>": "<span class=sf-dump-str title="3 characters">bar</span>"
7676
</samp>}
7777
"<span class=sf-dump-key>closure</span>" => <span class=sf-dump-note>Closure</span> {{$r}<samp>
78-
<span class=sf-dump-meta>class</span>: "<span class=sf-dump-str title="48 characters">Symfony\Component\VarDumper\Tests\HtmlDumperTest</span>"
78+
<span class=sf-dump-meta>class</span>: "<span class=sf-dump-str title="Symfony\Component\VarDumper\Tests\HtmlDumperTest
79+
48 characters"><span class=sf-dump-ellipsis>Symfony\Component\VarDumper\Tests</span>\HtmlDumperTest</span>"
7980
<span class=sf-dump-meta>this</span>: <abbr title="Symfony\Component\VarDumper\Tests\HtmlDumperTest" class=sf-dump-note>HtmlDumperTest</abbr> {{$r} &%s;}
8081
<span class=sf-dump-meta>parameters</span>: {<samp>
8182
<span class=sf-dump-meta>\$a</span>: {}

0 commit comments

Comments
 (0)
0