Dumping

Jeder Debugger ist ein guter Freund der Funktion var_dump, die den Inhalt einer Variablen detailliert ausgibt. Leider verliert die Ausgabe in einer HTML-Umgebung ihre Formatierung und verschmilzt zu einer einzigen Zeile, ganz zu schweigen von der Bereinigung des HTML-Codes. In der Praxis ist es unerlässlich, var_dump durch eine geschicktere Funktion zu ersetzen. Das ist genau dump().

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

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

erzeugt die Ausgabe:

Das standardmäßige helle Thema können Sie in ein dunkles ändern:

Debugger::$dumpTheme = 'dark';

Weiterhin können wir die Verschachtelungstiefe mit Debugger::$maxDepth und die Länge der angezeigten Beschriftungen mit Debugger::$maxLength ändern. Niedrigere Werte beschleunigen den Debugger natürlich.

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

Die Funktion dump() kann auch weitere nützliche Informationen ausgeben. Die Konstante Tracy\Dumper::LOCATION_SOURCE fügt einen Tooltip mit dem Pfad zu der Stelle hinzu, an der die Funktion aufgerufen wurde. Tracy\Dumper::LOCATION_LINK stellt uns einen Link zu dieser Stelle zur Verfügung. Tracy\Dumper::LOCATION_CLASS gibt bei jedem gedumpten Objekt einen Tooltip mit dem Pfad zur Datei aus, in der seine Klasse definiert ist. Die Konstanten werden der Variablen Debugger::$showLocation zugewiesen, bevor dump() aufgerufen wird. Wenn wir mehrere Werte gleichzeitig setzen wollen, verbinden wir sie mit dem Operator |.

Debugger::$showLocation = Tracy\Dumper::LOCATION_SOURCE; // Stellt nur die Ausgabe über den Aufrufort der Funktion ein
Debugger::$showLocation = Tracy\Dumper::LOCATION_CLASS | Tracy\Dumper::LOCATION_LINK; // Stellt gleichzeitig die Ausgabe des Links und den Pfad zur Klasse ein
Debugger::$showLocation = false; // Schaltet die Ausgabe zusätzlicher Informationen aus
Debugger::$showLocation = true; // Schaltet die Ausgabe aller zusätzlichen Informationen ein

Eine praktische Alternative zu dump() ist dumpe() (dump & exit) und bdump(). Letzteres ermöglicht es uns, den Wert einer Variablen im Tracy Bar Panel auszugeben. Das ist sehr praktisch, da die Dumps vom Seitenlayout getrennt sind und wir ihnen auch einen Kommentar hinzufügen können.

bdump([2, 4, 6, 8], 'gerade Zahlen bis zehn');
bdump([1, 3, 5, 7, 9], 'ungerade Zahlen bis zehn');