Tracy umí rozepisovat flagy, konstanty apod

David Grudl
Nette Core | 8228
+
+8
-

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.