[VarDumper] Adapt to php 7.2 changes

This commit is contained in:
Nicolas Grekas 2017-07-25 16:01:38 +02:00
parent ee58cfcf10
commit 3c2f5f7a24
3 changed files with 39 additions and 12 deletions

View File

@ -54,7 +54,7 @@ class Caster
if ($a) {
$p = array_keys($a);
foreach ($p as $i => $k) {
if (isset($k[0]) && "\0" !== $k[0] && !$reflector->hasProperty($k)) {
if (isset($k[0]) ? "\0" !== $k[0] && !$reflector->hasProperty($k) : \PHP_VERSION_ID >= 70200) {
$p[$i] = self::PREFIX_DYNAMIC.$k;
} elseif (isset($k[16]) && "\0" === $k[16] && 0 === strpos($k, "\0class@anonymous\0")) {
$p[$i] = "\0".$reflector->getParentClass().'@anonymous'.strrchr($k, "\0");

View File

@ -141,8 +141,22 @@ EOTXT
$var[] = &$v;
$var[''] = 2;
$this->assertDumpMatchesFormat(
<<<'EOTXT'
if (\PHP_VERSION_ID >= 70200) {
$this->assertDumpMatchesFormat(
<<<'EOTXT'
array:4 [
0 => {}
1 => &1 null
2 => &1 null
"" => 2
]
EOTXT
,
$var
);
} else {
$this->assertDumpMatchesFormat(
<<<'EOTXT'
array:4 [
"0" => {}
"1" => &1 null
@ -150,9 +164,10 @@ array:4 [
"" => 2
]
EOTXT
,
$var
);
,
$var
);
}
}
public function testObjectCast()
@ -160,16 +175,28 @@ EOTXT
$var = (object) array(1 => 1);
$var->{1} = 2;
$this->assertDumpMatchesFormat(
<<<'EOTXT'
if (\PHP_VERSION_ID >= 70200) {
$this->assertDumpMatchesFormat(
<<<'EOTXT'
{
+"1": 2
}
EOTXT
,
$var
);
} else {
$this->assertDumpMatchesFormat(
<<<'EOTXT'
{
+1: 1
+"1": 2
}
EOTXT
,
$var
);
,
$var
);
}
}
public function testClosedResource()

View File

@ -203,7 +203,7 @@ object(Symfony\Component\VarDumper\Cloner\Data)#%i (4) {
EOTXT;
ob_start();
var_dump($clone);
$this->assertStringMatchesFormat($expected, ob_get_clean());
$this->assertStringMatchesFormat(\PHP_VERSION_ID >= 70200 ? str_replace('"1"', '1', $expected) : $expected, ob_get_clean());
}
public function testCaster()