Самоскид

Кожен розробник налагоджувальних програм добре знайомий з функцією 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 додає підказку, що спливає, з шляхом до файлу, у якому було викликано функцію. Tracy\Dumper::LOCATION_LINK додає посилання на файл. Tracy\Dumper::LOCATION_CLASS додає підказку, що спливає, до кожного об'єкта дампа, що містить шлях до файлу, у якому визначено клас об'єкта. Усі ці константи можуть бути встановлені у змінній Debugger::$showLocation перед викликом функції dump(). Ви можете встановити кілька значень одночасно, використовуючи оператор |.

Debugger::$showLocation = Tracy\Dumper::LOCATION_SOURCE; // Показує шлях до місця виклику dump()
Debugger::$showLocation = Tracy\Dumper::LOCATION_CLASS | Tracy\Dumper::LOCATION_LINK; // Показує як шлях до класів, так і посилання на місце виклику dump()
Debugger::$showLocation = false; // Приховує додаткову інформацію про розташування
Debugger::$showLocation = true; // Показує всю додаткову інформацію про місцезнаходження

Дуже зручною альтернативою 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');