Zrzucanie
Każdy debugger jest dobrym przyjacielem funkcji var_dump, która szczegółowo wyrzuca
zawartość zmiennej. Niestety, w środowisku HTML, zrzut traci formatowanie i zwala się na jedną linię, nie wspominając
o sanityzacji kodu HTML. W praktyce konieczne jest zastąpienie var_dump
funkcją poręczniejszą. To jest
dump()
.
$arr = [10, 20.2, true, null, 'hello'];
dump($arr);
// nebo Debugger::dump($arr);
generuje wyjście:
Możesz zmienić domyślny jasny motyw na ciemny:
Debugger::$dumpTheme = 'dark';
Możemy również zmienić głębię pola za pomocą Debugger::$maxDepth oraz długość wyświetlanych etykiet za pomocą Debugger::$maxLength. Niższe wartości naturalnie przyspieszą działanie debugera.
Debugger::$maxDepth = 2; // domyślnie: 3
Debugger::$maxLength = 50; // domyślnie: 150
Funkcja dump()
może również wyprowadzać inne przydatne informacje. Stała
Tracy\Dumper::LOCATION_SOURCE
dodaje tooltip ze ścieżką do miejsca, w którym wywołano funkcję.
Tracy\Dumper::LOCATION_LINK
daje nam link do tego miejsca. Tracy\Dumper::LOCATION_CLASS
Dla każdego
zrzuconego obiektu wypisuje tooltip ze ścieżką do pliku definiującego jego klasę. Stałe ustawiamy w zmiennej
Debugger::$showLocation
przed wywołaniem dump()
. Jeśli chcemy ustawić wiele wartości naraz,
konkatenujemy je za pomocą operatora |
.
Debugger::$showLocation = Tracy\Dumper::LOCATION_SOURCE; // Ustawia tylko deklarację lokalizacji wywołania funkcji
Debugger::$showLocation = Tracy\Dumper::LOCATION_CLASS | Tracy\Dumper::LOCATION_LINK; // Ustawia zarówno listing linków jak i ścieżkę klasy
Debugger::$showLocation = false; // Wyłącza wyświetlanie dodatkowych informacji
Debugger::$showLocation = true; // Włącza wyświetlanie wszystkich dodatkowych informacji
Praktycznymi alternatywami dla dump()
są dumpe()
(dump & exit) oraz bdump()
. Ten
ostatni pozwala nam zrzucić wartość zmiennej w Tracy Bar. Jest to bardzo przydatne, ponieważ zrzuty są oddzielone od układu
strony, a dodatkowo możemy umieścić na nich komentarz.
bdump([2, 4, 6, 8], 'sudá čísla do deseti');
bdump([1, 3, 5, 7, 9], 'lichá čísla do deseti');