Самосвал
Каждый разработчик отладочных программ хорошо знаком с функцией
var_dump
, которая подробно перечисляет все содержимое любой
переменной. К сожалению, ее вывод не имеет HTML-форматирования и выводит
дамп в одну строку HTML-кода, не говоря уже о контекстном экранировании.
Необходимо заменить var_dump
на более удобную функцию. Именно такой
функцией и является dump()
.
$arr = [10, 20.2, true, null, 'hello'];
dump($arr);
// or 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
добавляет всплывающую подсказку с путем к
файлу, в котором была вызвана функция. Tracy\Dumper::LOCATION_LINK
добавляет
ссылку на файл. Tracy\Dumper::LOCATION_CLASS
добавляет всплывающую подсказку
к каждому объекту дампа, содержащую путь к файлу, в котором определен
класс объекта. Все эти константы могут быть установлены в переменной
Debugger::$showLocation
перед вызовом функции dump()
. Вы можете
установить несколько значений одновременно, используя оператор
|
.
Debugger::$showLocation = Tracy\Dumper::LOCATION_SOURCE; // Shows path to where the dump() was called
Debugger::$showLocation = Tracy\Dumper::LOCATION_CLASS | Tracy\Dumper::LOCATION_LINK; // Shows both paths to the classes and link to where the dump() was called
Debugger::$showLocation = false; // Hides additional location information
Debugger::$showLocation = true; // Shows all additional location information
Очень удобной альтернативой dump()
является dumpe()
(т.е. dump and
exit) и bdump()
. Это позволяет нам сбрасывать переменные в Tracy Bar. Это
полезно, потому что дампы не портят вывод, и мы также можем добавить
заголовок к дампу.
bdump([2, 4, 6, 8], 'even numbers up to ten');
bdump([1, 3, 5, 7, 9], 'odd numbers up to ten');