Tracy umí rozepisovat flagy, konstanty apod
- David Grudl
- Nette Core | 8218
Znáte to. Dumpujete nějaký objekt a ten má property
int $type
, jehož hodnotu určuje konstanta (např).
Vidět číslo 3
je nicneříkající, srozumitelné by bylo
Line::UNCHANGED
.
Co teprve, když jde o bitovou kombinaci několika konstant, např.
PREG_OFFSET_CAPTURE | PREG_UNMATCHED_AS_NULL
. Vidět, že
$flags
je 768
, člověku nic neřekne.
Příklad přímo z PHP
dump(PhpToken::tokenize('<?php echo(10);'))
:
Tracy od verze 2.10 to umí řešit a pokusí se číslo dekomponovat na konstanty:
Stačí říct, o kterou property se jedná a jaké konstanty mohou představovat hodnotu:
Dumper::addEnumProperty(Line::class, 'type', ['Line::ADDED', 'Line::REMOVED', 'Line::UNCHANGED']);
nebo v případě toho PhpToken:
Dumper::addEnumProperty(PhpToken::class, 'id', array_keys(get_defined_constants(true)['tokenizer']));
Tracy 2.10 je připravená k vydání, budu rád, když ji zkusíte otestovat.