Skip to content

Commit f3f04e0

Browse files
enumagdg
authored andcommitted
Dumper: added ext-ds support (#484)
1 parent d44afd6 commit f3f04e0

File tree

4 files changed

+59
-0
lines changed

4 files changed

+59
-0
lines changed

.github/workflows/tests.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ jobs:
2222
- uses: shivammathur/setup-php@v2
2323
with:
2424
php-version: ${{ matrix.php }}
25+
extensions: ds
2526
coverage: none
2627

2728
- run: composer install --no-progress --prefer-dist
@@ -41,6 +42,7 @@ jobs:
4142
- uses: shivammathur/setup-php@v2
4243
with:
4344
php-version: 7.4
45+
extensions: ds
4446
coverage: none
4547

4648
- run: composer install --no-progress --prefer-dist

src/Tracy/Dumper/Dumper.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ class Dumper
8080
\DOMNode::class => [Exposer::class, 'exposeDOMNode'],
8181
\DOMNodeList::class => [Exposer::class, 'exposeDOMNodeList'],
8282
\DOMNamedNodeMap::class => [Exposer::class, 'exposeDOMNodeList'],
83+
\Ds\Collection::class => [Exposer::class, 'exposeDsCollection'],
84+
\Ds\Map::class => [Exposer::class, 'exposeDsMap'],
8385
];
8486

8587
/** @var Describer */

src/Tracy/Dumper/Exposer.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,4 +179,27 @@ public static function exposePhpIncompleteClass(
179179
}
180180
$value->value = $class . ' (Incomplete Class)';
181181
}
182+
183+
184+
public static function exposeDsCollection(
185+
\Ds\Collection $obj,
186+
Value $value,
187+
Describer $describer
188+
): void {
189+
foreach ($obj as $k => $v) {
190+
$describer->addPropertyTo($value, (string) $k, $v, Value::PROP_VIRTUAL);
191+
}
192+
}
193+
194+
195+
public static function exposeDsMap(
196+
\Ds\Map $obj,
197+
Value $value,
198+
Describer $describer
199+
): void {
200+
$i = 0;
201+
foreach ($obj as $k => $v) {
202+
$describer->addPropertyTo($value, (string) $i++, new \Ds\Pair($k, $v), Value::PROP_VIRTUAL);
203+
}
204+
}
182205
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
3+
/**
4+
* Test: Tracy\Dumper::toText() specials
5+
* @phpExtension ds
6+
*/
7+
8+
declare(strict_types=1);
9+
10+
use Tester\Assert;
11+
use Tracy\Dumper;
12+
13+
require __DIR__ . '/../bootstrap.php';
14+
15+
16+
$collection = new Ds\Vector(['value']);
17+
Assert::match(<<<'XX'
18+
Ds\Vector #%d%
19+
0: 'value'
20+
XX
21+
, Dumper::toText($collection));
22+
23+
24+
$map = new Ds\Map;
25+
$map->put('key', 'value');
26+
Assert::match(<<<'XX'
27+
Ds\Map #%d%
28+
0: Ds\Pair #%d%
29+
| key: 'key'
30+
| value: 'value'
31+
XX
32+
, Dumper::toText($map));

0 commit comments

Comments
 (0)