Skip to content

Commit 742b2b0

Browse files
committed
Dumper: dumped classes are fully qualified
1 parent facde28 commit 742b2b0

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

src/PhpGenerator/Dumper.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,8 @@ private function dumpObject(&$var, array $parents, int $level): string
128128
if ((new \ReflectionObject($var))->isAnonymous()) {
129129
throw new Nette\InvalidArgumentException('Cannot dump anonymous class.');
130130

131-
} elseif (in_array($class, ['DateTime', 'DateTimeImmutable'], true)) {
132-
return $this->format("new $class(?, new DateTimeZone(?))", $var->format('Y-m-d H:i:s.u'), $var->getTimeZone()->getName());
131+
} elseif (in_array($class, [\DateTime::class, \DateTimeImmutable::class], true)) {
132+
return $this->format("new \\$class(?, new \\DateTimeZone(?))", $var->format('Y-m-d H:i:s.u'), $var->getTimeZone()->getName());
133133
}
134134

135135
$arr = (array) $var;
@@ -158,9 +158,9 @@ private function dumpObject(&$var, array $parents, int $level): string
158158

159159
array_pop($parents);
160160
$out .= $space;
161-
return $class === 'stdClass'
161+
return $class === \stdClass::class
162162
? "(object) [$out]"
163-
: __CLASS__ . "::createObject('$class', [$out])";
163+
: '\\' . __CLASS__ . "::createObject('$class', [$out])";
164164
}
165165

166166

tests/PhpGenerator/Dumper.dump().phpt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ class Test
6565
private $c = 3;
6666
}
6767

68-
Assert::same("Nette\\PhpGenerator\\Dumper::createObject('Test', [\n\t'a' => 1,\n\t\"\\x00*\\x00b\" => 2,\n\t\"\\x00Test\\x00c\" => 3,\n])", $dumper->dump(new Test));
68+
Assert::same("\\Nette\\PhpGenerator\\Dumper::createObject('Test', [\n\t'a' => 1,\n\t\"\\x00*\\x00b\" => 2,\n\t\"\\x00Test\\x00c\" => 3,\n])", $dumper->dump(new Test));
6969
Assert::equal(new Test, eval('return ' . $dumper->dump(new Test) . ';'));
7070

7171

@@ -87,7 +87,7 @@ class Test2 extends Test
8787
}
8888
}
8989

90-
Assert::same("Nette\\PhpGenerator\\Dumper::createObject('Test2', [\n\t\"\\x00Test2\\x00c\" => 4,\n\t'a' => 1,\n\t\"\\x00*\\x00b\" => 2,\n])", $dumper->dump(new Test2));
90+
Assert::same("\\Nette\\PhpGenerator\\Dumper::createObject('Test2', [\n\t\"\\x00Test2\\x00c\" => 4,\n\t'a' => 1,\n\t\"\\x00*\\x00b\" => 2,\n])", $dumper->dump(new Test2));
9191
Assert::equal(new Test2, eval('return ' . $dumper->dump(new Test2) . ';'));
9292

9393

@@ -122,15 +122,15 @@ class TestDateTime extends DateTime
122122
}
123123

124124
Assert::same(
125-
"new DateTime('2016-06-22 20:52:43.123400', new DateTimeZone('Europe/Prague'))",
125+
"new \\DateTime('2016-06-22 20:52:43.123400', new \\DateTimeZone('Europe/Prague'))",
126126
$dumper->dump(new DateTime('2016-06-22 20:52:43.1234', new DateTimeZone('Europe/Prague')))
127127
);
128128
Assert::same(
129-
"new DateTimeImmutable('2016-06-22 20:52:43.123400', new DateTimeZone('Europe/Prague'))",
129+
"new \\DateTimeImmutable('2016-06-22 20:52:43.123400', new \\DateTimeZone('Europe/Prague'))",
130130
$dumper->dump(new DateTimeImmutable('2016-06-22 20:52:43.1234', new DateTimeZone('Europe/Prague')))
131131
);
132132
same(
133-
"Nette\\PhpGenerator\\Dumper::createObject('TestDateTime', [
133+
"\\Nette\\PhpGenerator\\Dumper::createObject('TestDateTime', [
134134
'date' => '2016-06-22 20:52:43.123400',
135135
'timezone_type' => 3,
136136
'timezone' => 'Europe/Prague',

0 commit comments

Comments
 (0)