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