8000 [VarDumper] Implement DsCaster · symfony/symfony@a1b9634 · GitHub
[go: up one dir, main page]

Skip to content

Commit a1b9634

Browse files
committed
[VarDumper] Implement DsCaster
1 parent 5c73900 commit a1b9634

File tree

2 files changed

+58
-0
lines changed

2 files changed

+58
-0
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Symfony package.
5+
*
6+
* (c) Fabien Potencier <fabien@symfony.com>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespace Symfony\Component\VarDumper\Caster;
13+
14+
use Ds\Deque;
15+
use Ds\Map;
16+
use Ds\PriorityQueue;
17+
use Ds\Queue;
18+
use Ds\Set;
19+
use Ds\Stack;
20+
use Ds\Vector;
21+
use Symfony\Component\VarDumper\Cloner\Stub;
22+
23+
/**
24+
* Casts Ds extension classes to array representation.
25+
*
26+
* @author Jáchym Toušek <enumag@gmail.com>
27+
*/
28+
class DsCaster
29+
{
30+
/**
31+
* @param Set|Deque|Vector|Stack|Queue|PriorityQueue $c
32+
*/
33+
public static function castDs($c, array $a, Stub $stub, $isNested)
34+
{
35+
$prefix = Caster::PREFIX_VIRTUAL;
36+
$a = $c->toArray();
37+
$a[$prefix.'capacity'] = $c->capacity();
38+
39+
return $a;
40+
}
41+
42+
public static function castMap(Map $c, array $a, Stub $stub, $isNested)
43+
{
44+
$prefix = Caster::PREFIX_VIRTUAL;
45+
$a = $c->pairs()->toArray();
46+
$a[$prefix.'capacity'] = $c->capacity();
47+
48+
return $a;
49+
}
50+
}

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,14 @@ abstract class AbstractCloner implements ClonerInterface
125125

126126
'Memcached' => ['Symfony\Component\VarDumper\Caster\MemcachedCaster', 'castMemcached'],
127127

128+
'Ds\Set' => ['Symfony\Component\VarDumper\Caster\DsCaster', 'castDs'],
129+
'Ds\Vector' => ['Symfony\Component\VarDumper\Caster\DsCaster', 'castDs'],
130+
'Ds\Deque' => ['Symfony\Component\VarDumper\Caster\DsCaster', 'castDs'],
131+
'Ds\Stack' => ['Symfony\Component\VarDumper\Caster\DsCaster', 'castDs'],
132+
'Ds\Queue' => ['Symfony\Component\VarDumper\Caster\DsCaster', 'castDs'],
133+
'Ds\PriorityQueue' => ['Symfony\Component\VarDumper\Caster\DsCaster', 'castDs'],
134+
'Ds\Map' => ['Symfony\Component\VarDumper\Caster\DsCaster', 'castMap'],
135+
128136
':curl' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castCurl'],
129137
':dba' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castDba'],
130138
':dba persistent' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castDba'],

0 commit comments

Comments
 (0)
0