Dumpowanie
Każdy programista debugujący jest dobrym przyjacielem funkcji var_dump, która
szczegółowo wypisuje zawartość zmiennej. Niestety, w środowisku HTML wynik traci formatowanie i zlewa się w jedną linię,
nie wspominając o sanitizacji kodu HTML. W praktyce konieczne jest zastąpienie var_dump
bardziej poręczną
funkcją. Tą funkcją jest właśnie dump()
.
$arr = [10, 20.2, true, null, 'hello'];
dump($arr);
// lub Debugger::dump($arr);
generuje wynik:

Domyślny jasny motyw można zmienić na ciemny:
Debugger::$dumpTheme = 'dark';

Możemy również zmienić głębokość zagnieżdżenia za pomocą Debugger::$maxDepth oraz długość wyświetlanych etykiet za pomocą Debugger::$maxLength. Niższe wartości naturalnie przyspieszą Tracy.
Debugger::$maxDepth = 2; // domyślnie: 3
Debugger::$maxLength = 50; // domyślnie: 150
Funkcja dump()
potrafi wypisać również inne przydatne informacje. Stała
Tracy\Dumper::LOCATION_SOURCE
dodaje podpowiedź (tooltip) ze ścieżką do miejsca, w którym funkcja została
wywołana. Tracy\Dumper::LOCATION_LINK
dostarcza nam link do tego miejsca. Tracy\Dumper::LOCATION_CLASS
przy każdym dumpowanym obiekcie wypisuje podpowiedź ze ścieżką do pliku, w którym zdefiniowana jest jego klasa. Stałe
ustawia się w zmiennej Debugger::$showLocation
jeszcze przed wywołaniem dump()
. Jeśli chcemy ustawić
wiele wartości naraz, łączymy je za pomocą operatora |
.
Debugger::$showLocation = Tracy\Dumper::LOCATION_SOURCE; // Ustawia tylko wyświetlanie informacji o miejscu wywołania funkcji
Debugger::$showLocation = Tracy\Dumper::LOCATION_CLASS | Tracy\Dumper::LOCATION_LINK; // Ustawia jednocześnie wyświetlanie linku i ścieżki do klasy
Debugger::$showLocation = false; // Wyłącza wyświetlanie dodatkowych informacji
Debugger::$showLocation = true; // Włącza wyświetlanie wszystkich dodatkowych informacji
Praktyczną alternatywą dla dump()
jest dumpe()
(dump & exit) oraz bdump()
. Pozwala
on nam wypisać wartość zmiennej w panelu Paska Tracy. Jest to bardzo przydatne, ponieważ zrzuty są oddzielone od układu
strony, a także możemy do nich dodać komentarz.
bdump([2, 4, 6, 8], 'liczby parzyste do dziesięciu');
bdump([1, 3, 5, 7, 9], 'liczby nieparzyste do dziesięciu');
