Dumpolás

Minden debugger jó barátja a var_dump függvénynek, amely részletesen kiírja egy változó tartalmát. Sajnos HTML környezetben a kimenet elveszíti a formázását és egyetlen sorba olvad össze, a HTML kód tisztításáról nem is beszélve. A gyakorlatban elengedhetetlen a var_dump helyettesítése egy ügyesebb függvénnyel. Ez pontosan a dump().

$arr = [10, 20.2, true, null, 'hello'];

dump($arr);
// vagy Debugger::dump($arr);

a következő kimenetet generálja:

Az alapértelmezett világos témát sötétre változtathatja:

Debugger::$dumpTheme = 'dark';

Továbbá módosíthatjuk a beágyazási mélységet a Debugger::$maxDepth segítségével és a megjelenített stringek hosszát a Debugger::$maxLength segítségével. Az alacsonyabb értékek természetesen gyorsítják a Tracy-t.

Debugger::$maxDepth = 2; // alapértelmezett: 3
Debugger::$maxLength = 50; // alapértelmezett: 150

A dump() függvény további hasznos információkat is ki tud írni. A Tracy\Dumper::LOCATION_SOURCE konstans hozzáad egy tooltipet azzal az elérési úttal, ahol a függvényt hívták. A Tracy\Dumper::LOCATION_LINK egy linket ad nekünk erre a helyre. A Tracy\Dumper::LOCATION_CLASS minden dumpolt objektumnál kiír egy tooltipet azzal a fájl elérési úttal, ahol az osztálya definiálva van. A konstansokat a Debugger::$showLocation változóba állítjuk be még a dump() hívása előtt. Ha több értéket szeretnénk egyszerre beállítani, az | operátorral kapcsoljuk össze őket.

Debugger::$showLocation = Tracy\Dumper::LOCATION_SOURCE; // Csak a függvényhívás helyének kiírását állítja be
Debugger::$showLocation = Tracy\Dumper::LOCATION_CLASS | Tracy\Dumper::LOCATION_LINK; // Egyszerre állítja be a link kiírását és az osztály elérési útját
Debugger::$showLocation = false; // Kikapcsolja a további információk kiírását
Debugger::$showLocation = true; // Bekapcsolja az összes további információ kiírását

A dump() praktikus alternatívája a dumpe() (dump & exit) és a bdump(). Ez lehetővé teszi számunkra, hogy egy változó értékét a Tracy Bar paneljén írjuk ki. Ez nagyon praktikus, mivel a dumpok elkülönülnek az oldalelrendezéstől, és megjegyzést is fűzhetünk hozzájuk.

bdump([2, 4, 6, 8], 'páros számok tízig');
bdump([1, 3, 5, 7, 9], 'páratlan számok tízig');