Dumpování
Každý ladič je dobrým kamarádem s funkcí var_dump, která podrobně vypíše
obsah proměnné. Bohužel v prostředí HTML výpis pozbude formátování a slije se do jednoho řádku, o sanitizaci HTML
kódu ani nemluvě. V praxi je nezbytné var_dump
nahradit šikovnější funkcí. Tou je právě
dump()
.
$arr = [10, 20.2, true, null, 'hello'];
dump($arr);
// nebo Debugger::dump($arr);
vygeneruje výstup:

Vychozí světlý motiv můžete změnit na tmavý:
Debugger::$dumpTheme = 'dark';

Dále můžeme změnit hloubku zanoření pomocí Debugger::$maxDepth a délku zobrazovaných popisek pomocí Debugger::$maxLength. Nižší hodnoty laděnku přirozeně zrychlí.
Debugger::$maxDepth = 2; // default: 3
Debugger::$maxLength = 50; // default: 150
Funkce dump()
umí vypsat i další užitečné informace. Konstanta Tracy\Dumper::LOCATION_SOURCE
přidá tooltip s cestou k místu, kde byla funkce zavolána. Tracy\Dumper::LOCATION_LINK
nám poskytne odkaz na
ono místo. Tracy\Dumper::LOCATION_CLASS
u každého dumpovaného objektu vypíše tooltip s cestou k souboru, ve
kterém je definována jeho třída. Konstanty se nastavují do proměnné Debugger::$showLocation
ještě před
voláním dump()
. Pokud chceme nastavit více hodnot najednou, spojíme je pomocí operátoru |
.
Debugger::$showLocation = Tracy\Dumper::LOCATION_SOURCE; // Nastaví pouze výpis o místě volání funkce
Debugger::$showLocation = Tracy\Dumper::LOCATION_CLASS | Tracy\Dumper::LOCATION_LINK; // Nastaví zároveň výpis odkazu a cestu ke třídě
Debugger::$showLocation = false; // Vypne výpis dodatečných informací
Debugger::$showLocation = true; // Zapne výpis všech dodatečných informací
Praktickou alternativou k dump()
je dumpe()
(dump & exit) a bdump()
. Ten nám
umožňuje vypsat hodnotu proměnné v panelu Tracy Baru. To je velmi šikovné, jelikož jsou dumpy oddělené od rozložení
stránky a také k nim můžeme umístit komentář.
bdump([2, 4, 6, 8], 'sudá čísla do deseti');
bdump([1, 3, 5, 7, 9], 'lichá čísla do deseti');
