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');