Дъмпване
Всеки дебъгър е добър приятел с функцията var_dump,
която подробно извежда съдържанието на променлива. За съжаление, в HTML
среда изходът губи форматирането си и се слива в един ред, да не говорим
за санирането на HTML кода. На практика е необходимо var_dump
да се
замени с по-удобна функция. Това е именно dump()
.
$arr = [10, 20.2, true, null, 'hello'];
dump($arr);
// или Debugger::dump($arr);
генерира изход:

Можете да промените светлата тема по подразбиране на тъмна:
Debugger::$dumpTheme = 'dark';

Освен това можем да променим дълбочината на влагане с помощта на Debugger::$maxDepth и дължината на показваните описания с помощта на Debugger::$maxLength. По-ниските стойности естествено ще ускорят Tracy.
Debugger::$maxDepth = 2; // по подразбиране: 3
Debugger::$maxLength = 50; // по подразбиране: 150
Функцията dump()
може да изведе и друга полезна информация.
Константата Tracy\Dumper::LOCATION_SOURCE
добавя подсказка (tooltip) с пътя до
мястото, където е извикана функцията. Tracy\Dumper::LOCATION_LINK
ни
предоставя връзка към това място. Tracy\Dumper::LOCATION_CLASS
при всеки
дъмпнат обект извежда подсказка с пътя до файла, в който е дефиниран
неговият клас. Константите се задават в променливата
Debugger::$showLocation
преди извикването на dump()
. Ако искаме да
зададем няколко стойности едновременно, ги свързваме с оператора
|
.
Debugger::$showLocation = Tracy\Dumper::LOCATION_SOURCE; // Задава само извеждане на мястото на извикване на функцията
Debugger::$showLocation = Tracy\Dumper::LOCATION_CLASS | Tracy\Dumper::LOCATION_LINK; // Задава едновременно извеждане на връзка и път до класа
Debugger::$showLocation = false; // Изключва извеждането на допълнителна информация
Debugger::$showLocation = true; // Включва извеждането на цялата допълнителна информация
Практична алтернатива на dump()
са dumpe()
(dump & exit) и
bdump()
. Последният ни позволява да изведем стойността на
променлива в панела на Tracy Bar. Това е много удобно, тъй като дъмповете са
отделени от лейаута на страницата и можем да добавим коментар
към тях.
bdump([2, 4, 6, 8], 'четни числа до десет');
bdump([1, 3, 5, 7, 9], 'нечетни числа до десет');
