Николаев Виталий
Блог веб-разработчика: Битрикс, PHP, Python, Linux и SEO
Битрикс Битрикс
19.02.2019

Функция дебага в Битрикс

При разработке на 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 объектов.
16 просмотров

Комментарии

Где заказы?
Почему у одних компаний очередь из клиентов, а у других пустой сайт и тишина?
Телеграм канал «Где заказы?» — про продажи, сайты и ошибки бизнеса на реальных примерах. Подписаться