Дампинг
Каждый отладчик — хороший друг функции 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; // default: 3
Debugger::$maxLength = 50; // default: 150
Функция dump()
умеет выводить и другую полезную информацию.
Константа Tracy\Dumper::LOCATION_SOURCE
добавляет подсказку (tooltip) с путем к
месту, где была вызвана функция. Tracy\Dumper::LOCATION_LINK
предоставляет
нам ссылку на это место. Tracy\Dumper::LOCATION_CLASS
для каждого дампа
объекта выводит подсказку (tooltip) с путем к файлу, в котором определен
его класс. Константы устанавливаются в переменную 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 Baru. Это очень удобно, так как дампы отделены от макета
страницы, и мы также можем разместить к ним комментарий.
bdump([2, 4, 6, 8], 'четные числа до десяти');
bdump([1, 3, 5, 7, 9], 'нечетные числа до десяти');
