Yandex Metrika
sanches.free

Отладочный вывод в D7: Diag\Debug без var_dump по всему продакшену

Зачем свой слой над var_dump

Прямой var_dump в шаблоне легко утекёт в браузер вместе со стилями страницы, а большие структуры разрывают разметку. \Bitrix\Main\Diag\Debug даёт управляемый формат маркированного дампа по метке переменной — удобно сравнивать несколько снимков одного сценария.

Вывод и строка-буфер

Третий параметр true переводит вывод из «в ответ HTTP» в «вернуть HTML-строку» — пригодно для лога в БД или для служебного REST, где нужно упаковать отладочный блок в JSON (на тестовом контуре).

Запись на диск

dumpToFile и writeToFile отличаются форматированием первого против «простейшего текстового представления», близкого к print_r. Путь вроде /diag/checkout_trace.log обычно означает «от корня web-проекта»: не смешивайте с файловым корнем без уточняющего DOCUMENT_ROOT; на промышленном хостинге лог лучше класть вне публичного каталога и чистить ротацией.

Пример единым блоком

use Bitrix\Main\Diag\Debug;

$payload = ['sku' => 90210, 'flags' => [1 => true]];

Debug::dump($payload, 'Cart snapshot'); // в ответ страницы (только временно)
$htmlChunk = Debug::dump($payload, 'Cart snapshot', true);
Debug::dumpToFile($payload, 'Cart snapshot', '/local/logs/trace_checkout.log');
Debug::writeToFile($payload, 'Cart snapshot', '/local/logs/trace_checkout_plain.log');

В продакшене

  • Не оставлять дампы включёнными на живом сайте: поисковики индексируют «случайную» простыню ошибок так же охотно, как контент.
  • Сопоставляйте уровень детализации с политикой ПДн: пароли и токены в дампы не включают даже локально без маскирования.

Не хотите копаться сами?

Починю за 1-3 дня. Без предоплаты — оплата по результату.

15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии