Dumper

Jeder Debugging-Entwickler ist ein guter Freund der Funktion var_dump, die alle Inhalte beliebiger Variablen im Detail auflistet. Leider ist ihre Ausgabe ohne HTML-Formatierung und gibt den Dump in einer einzigen Zeile HTML-Code aus, ganz zu schweigen vom Kontext-Escaping. Es ist notwendig, die var_dump durch eine praktischere Funktion zu ersetzen. Und genau das ist dump().

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

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

erzeugt die Ausgabe:

Sie können das Standardthema “hell” in “dunkel” ändern:

Debugger::$dumpTheme = 'dark';

Sie können auch die Verschachtelungstiefe mit Debugger::$maxDepth und die Länge der angezeigten Strings mit Debugger::$maxLength ändern. Niedrigere Werte beschleunigen natürlich das Rendering von Tracy.

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

Die Funktion dump() kann weitere nützliche Informationen anzeigen. Tracy\Dumper::LOCATION_SOURCE fügt einen Tooltip mit dem Pfad zu der Datei hinzu, in der die Funktion aufgerufen wurde. Tracy\Dumper::LOCATION_LINK fügt einen Link zu der Datei hinzu. Tracy\Dumper::LOCATION_CLASS fügt einen Tooltip zu jedem ausgegebenen Objekt hinzu, der den Pfad zu der Datei enthält, in der die Klasse des Objekts definiert ist. Alle diese Konstanten können in der Variablen Debugger::$showLocation gesetzt werden, bevor die Funktion dump() aufgerufen wird. Mit dem Operator | können Sie mehrere Werte auf einmal setzen.

Debugger::$showLocation = Tracy\Dumper::LOCATION_SOURCE; // Shows path to where the dump() was called
Debugger::$showLocation = Tracy\Dumper::LOCATION_CLASS | Tracy\Dumper::LOCATION_LINK; // Shows both paths to the classes and link to where the dump() was called
Debugger::$showLocation = false; // Hides additional location information
Debugger::$showLocation = true; // Shows all additional location information

Eine sehr praktische Alternative zu dump() ist dumpe() (d.h. dump and exit) und bdump(). Damit können wir die Variablen in Tracy Bar ausgeben. Dies ist nützlich, weil Dumps die Ausgabe nicht durcheinander bringen und wir dem Dump auch einen Titel hinzufügen können.

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