Николаев Виталий
Блог веб-разработчика: Битрикс, 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>';
}
?>

В своих проектах я использую серверную инфраструктуру Timeweb Cloud

VPS и облачные решения для стабильной работы сайтов на PHP и 1С-Битрикс — от корпоративных сайтов до интернет-магазинов и высоконагруженных веб-проектов.

Перейти на Timeweb Cloud
Реклама · ERID: CQH36pWzJqVJ4YD9t5y227AkMQdhpG2THarwRmX2g9tS8x

Как использовать 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 объектов.
89 просмотров

Если возникли сложности

Помогу разобраться с настройкой, исправить ошибки и реализовать решение под ваш проект.

Поддержка сайтов на 1С-Битрикс

Поддержка сайтов на 1С-Битрикс: быстрое решение ошибок, консультации, обучение сотрудников и сопровождение сайта. 
Резервирую время под ваш проект для оперативной помощи и стабильной работы сайта.
Подробнее
Где заказы?

Почему один сайт стабильно приносит заявки, а другой годами просто «висит в интернете»?

В телеграм-канале «Где заказы?» я разбираю реальные ошибки бизнеса, SEO, сайты, рекламу, воронки продаж и показываю, почему компании теряют клиентов и как это исправить.

Без инфоцыганства и мотивационных цитат — только практика, кейсы и рабочие решения для бизнеса и веб-разработки.

Комментарии

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