Самосвал

Каждый разработчик отладочных программ хорошо знаком с функцией 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');