Dumper

Ogni sviluppatore di debug è un buon amico della funzione var_dump, che elenca in dettaglio tutti i contenuti di qualsiasi variabile. Purtroppo, il suo output è privo di formattazione HTML e produce il dump in una singola riga di codice HTML, senza contare l'escape del contesto. È necessario sostituire var_dump con una funzione più pratica. È proprio questo il caso di dump().

$arr = [10, 20.2, true, null, 'ciao'];

dump($arr);
// o Debugger::dump($arr);

genera l'output:

È possibile modificare il tema chiaro predefinito in scuro:

Debugger::$dumpTheme = 'dark';

È inoltre possibile modificare la profondità di annidamento con Debugger::$maxDepth e la lunghezza delle stringhe visualizzate con Debugger::$maxLength. Naturalmente, valori più bassi accelerano il rendering di Tracy.

Debugger::$maxDepth = 2; // valore predefinito: 3
Debugger::$maxLength = 50; // valore predefinito: 150

La funzione dump() può visualizzare altre informazioni utili. Tracy\Dumper::LOCATION_SOURCE aggiunge una descrizione del percorso del file in cui è stata chiamata la funzione. Tracy\Dumper::LOCATION_LINK aggiunge un collegamento al file. Tracy\Dumper::LOCATION_CLASS aggiunge una descrizione di ogni oggetto scaricato contenente il percorso del file in cui è definita la classe dell'oggetto. Tutte queste costanti possono essere impostate nella variabile Debugger::$showLocation prima di chiamare la funzione dump(). È possibile impostare più valori contemporaneamente usando l'operatore |.

Debugger::$showLocation = Tracy\Dumper::LOCATION_SOURCE; // Mostra il percorso in cui è stato chiamato il dump()
Debugger::$showLocation = Tracy\Dumper::LOCATION_CLASS | Tracy\Dumper::LOCATION_LINK; // Mostra sia il percorso delle classi che il link al punto in cui è stato chiamato il dump()
Debugger::$showLocation = false; // Nasconde le informazioni aggiuntive sul percorso
Debugger::$showLocation = true; // Mostra tutte le informazioni supplementari sulla localizzazione

Un'alternativa molto comoda a dump() è rappresentata da dumpe() (cioè dump and exit) e bdump(). Questi permettono di eseguire il dump delle variabili in Tracy Bar. È utile perché i dump non rovinano l'output e si può anche aggiungere un titolo al dump.

bdump([2, 4, 6, 8], 'even numbers up to ten');
bdump([1, 3, 5, 7, 9], 'odd numbers up to ten');