Функция дебага в Битрикс
При разработке на 1С-Битрикс очень часто требуется посмотреть, какие данные находятся в массиве.
Особенно это полезно:
- при работе с компонентами;
- в result_modifier.php;
- в шаблонах;
- при отладке API;
- при работе с инфоблоками;
- в корзине и заказах.
В этой статье покажу простую debug-функцию, которой удобно пользоваться практически в любом проекте на Битрикс.
Создаем функцию debug()
Открываем файл:
/bitrix/php_interface/init.php
или:
/local/php_interface/init.php
и добавляем функцию:
<?
function debug($data)
{
echo '<pre>' .
print_r($data, 1) .
'</pre>';
}
?>
Как использовать debug()
Теперь для вывода массива достаточно вызвать:
<?
debug($arResult);
?>
Что делает эта функция
Функция:
- выводит массив;
- сохраняет форматирование;
- делает вывод читаемым.
Почему используется pre
<pre>
сохраняет:
- переносы строк;
- отступы;
- структуру массива.
Без:
<pre>
массив выводился бы одной строкой.
Что делает print_r()
print_r($data, 1)
преобразует массив в строку.
Второй параметр:
1
означает:
- не выводить сразу;
- а вернуть результат в виде строки.
Где удобно использовать
- template.php;
- result_modifier.php;
- component_epilog.php;
- init.php;
- AJAX обработчики;
- интеграции;
- работа с D7.
Примеры использования
Отладка arResult
<?
debug($arResult);
?>
Отладка arParams
<?
debug($arParams);
?>
Отладка GET
<?
debug($_GET);
?>
Отладка POST
<?
debug($_POST);
?>
Улучшенный вариант debug()
Можно добавить:
- цвет;
- фон;
- автоматическое завершение скрипта.
Например:
<?
function debug($data, $die = false)
{
echo '<pre style="background:#111;
color:#0f0;
padding:15px;">';
print_r($data);
echo '</pre>';
if ($die)
{
die();
}
}
?>
Пример с остановкой скрипта
<?
debug($arResult, true);
?>
После вывода массива выполнение скрипта остановится.
Важно на продакшене
Не забывайте удалять debug() на рабочем сайте, так как:
- можно случайно показать служебные данные;
- утекут настройки;
- можно вывести токены или пароли.
Итог
Простая функция:
debug()
значительно упрощает разработку и отладку проектов на 1С-Битрикс.
Особенно удобно использовать её для просмотра:
- $arResult;
- $arParams;
- результатов API;
- данных инфоблоков;
- D7 объектов.
Комментарии