composer require "ms-natali/bitrix-debug"
Для отладки данных обычно мы печатаем данные с помощью dump($var). Однако сделать такое на прод сервере мы не можем, т.к.:
- Тогда отладочную информацию смогут увидеть пользователи
- Комитить такую отладку мы тоже не можем, т.к. тогда эта информация будет выводиться всегда.
Данный пакет предлагает решение этой проблемы
Для отладки предлагается следующий механизм:
- Прописываем в
init.php
строку\MsNatali\BitrixDebug\DebugVar::register()
Метод register может принимать 2 необязательных параметра:
- $cut_dir часть пути до файла, которую не нужно выводить в попап (оптимально сюда передавать путь до директории проекта)
- $cookie_name название куки, куда будет сохраняться информация о текущем режиме отладки (вкл/выкл)
- Вызываем
\MsNatali\BitrixDebug\DebugVar::get()->debug($var)
в нужном месте
Дополнительно в ->debug можно передать:
- Название отлаживаемых данных. Например
->debug($arResult, "Результат компонента " . $this->getName())
. По умолчанию названием будет считаться название переданной переменной.- порядковый номер элемента стека вызова, который будет использоваться для получения информации о файле и строке вызова. Например
->debug($arResult, "", 1)
- В панели администратора включаем "Отладка -> Отладка данных". В нижнем углу появится информация об отладочных данных (как при отладке SQL запросов).
- Открываем попап и видим данные, сгруппированные по файлу:строке вызова, а так же по названию.
/**
* Добавить переменную к отладке
* @param mixed $var переменная, информацию о которой необходимо вывести в отладчик
* @param string $name название переменной. По умолчанию будет использовано реальное название переменной или No Name
* @param int $backtrace_i порядковый номер элемента стека вызова, который будет использоваться для получения информации о файле и строке вызова
*/
function debug_var($var, $name = '', $backtrace_i = 0)
{
\MsNatali\BitrixDebug\DebugVar::get()->debug($var, $name, $backtrace_i + 1);
}
- В метод
BaseComponent::onPrepareComponentParams
передreturn
прописатьdebug_var($arParams, "Параметры компонента " . $this->getName());