Samohodnik

Vsak razvijalec razhroščevanja je dober prijatelj s funkcijo var_dump, ki podrobno izpiše vso vsebino poljubne spremenljivke. Na žalost je njen izpis brez oblikovanja HTML in izpiše izpis v eno samo vrstico kode HTML, da ne omenjamo eskapiranja konteksta. Funkcijo var_dump je treba nadomestiti z bolj priročno funkcijo. Prav to je dump().

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

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

generira izhodni rezultat:

Privzeto svetlo temo lahko spremenite v temno:

Debugger::$dumpTheme = 'dark';

Prav tako lahko spremenite globino gnezdenja s Debugger::$maxDepth in dolžino prikazanih nizov s Debugger::$maxLength. Seveda nižje vrednosti pospešijo upodabljanje programa Tracy.

Debugger::$maxDepth = 2; // privzeto: 3
Debugger::$maxLength = 50; // privzeto: 150

Funkcija dump() lahko prikaže še druge koristne informacije. Tracy\Dumper::LOCATION_SOURCE doda namig s potjo do datoteke, v kateri je bila funkcija klicana. Tracy\Dumper::LOCATION_LINK doda povezavo do datoteke. Tracy\Dumper::LOCATION_CLASS vsakemu izpisanemu objektu doda namig s potjo do datoteke, v kateri je definiran razred objekta. Vse te konstante lahko nastavite v spremenljivki Debugger::$showLocation, preden pokličete funkcijo dump(). Z operatorjem | lahko nastavite več vrednosti hkrati.

Debugger::$showLocation = Tracy\Dumper::LOCATION_SOURCE; // Pokaže pot do mesta, kjer je bil klican ukaz dump()
Debugger::$showLocation = Tracy\Dumper::LOCATION_CLASS | Tracy\Dumper::LOCATION_LINK; // Prikaže poti do razredov in povezavo do mesta, kjer je bil klican ukaz dump().
Debugger::$showLocation = false; // Skrije dodatne informacije o lokaciji
Debugger::$showLocation = true; // Prikaže vse dodatne informacije o lokaciji

Zelo priročna alternativa za dump() sta dumpe() (tj. dump and exit) in bdump(). To nam omogoča, da v programu Tracy Bar izpraznimo spremenljivke. To je koristno, ker se pri izpisu ne zmoti izpis, poleg tega pa lahko izpisu dodamo tudi naslov.

bdump([2, 4, 6, 8], 'even numbers up to ten');
bdump([1, 3, 5, 7, 9], 'odd numbers up to ten');