Подробная статья про функции отладки кода в Битрикс

Отладка кода – неотъемлемая часть разработки любого программиста. Разработчики пишут много кода, тестируют его, анализируют результаты, ищут ошибки. От этого процесса зависит качество решения и количество ошибок в нем. Поэтому без отладки не обойтись даже матерому разработчику, так как хороший программист всегда проверит работу своего кода, будь он даже простым.

В этой статье мы рассмотрим способы отладки кода с помощью чистых PHP-шных и битриксовых функции. Чтобы узнать про битриксовые функции отладки – советуем дочитать статью до конца.

Стандартные функции отладки кода

Функция print_r прекрасно подойдет для вывода массивов и переменных.

Результат вывода:

Подробная статья про функции отладки кода в Битрикс

var_dump

Функция var_dump подойдет для вывода массива с типами данных. Рекомендуется использовать ее, когда необходимо узнать тип данных залогированных переменных. В других случаях будет снижать читаемость логов.

Результат вывода:

Подробная статья про функции отладки кода в Битрикс

var_export

Функция var_export в отличие от var_dump может также выводить представление кода. То есть в том виде, в котором у вас код записан.

Результат вывода:

Подробная статья про функции отладки кода в Битрикс

Логирование результатов в файл

С помощью добрых функции работы с файлами можно сконструировать формулу для логирования переменных в файл.

Результат записи в файл:

Подробная статья про функции отладки кода в Битрикс

Оценка затраченного времени работы с microtime

На практике нечасто приходится анализировать время работы скрипта, скорее это становится нужно, когда проблема действительно возникает. С помощью microtime можно замерить время работы кода. Время считается в секундах.

Результат работы:

Подробная статья про функции отладки кода в Битрикс

Оценка затраченной памяти с memory_get_usage

Если скрипт зависает или завершает свою работу, то с помощью данной функции вы можете проверить сколько памяти затрачивается в процессе выполнения скрипта. Для удобства вывода количества памяти мы добавили код для его конвертации.

Результат работы:

Отладка вызова функции с debug_backtrace

С этой функцией вы сможете понять как запускается функция, откуда идет вызов и тем самым докопаться даже до самой сложной проблемы.

Пример работы:

Первый элемент – это точка, куда дошел вызов. А последний элемент – это какая функция первой была запущена в этой цепочке.

Первый элемент – это точка, куда дошел вызов. А последний элемент – это какая функция первой была запущена в этой цепочке.

Функции отладки кода в Битриксе

Логирование в файл с AddMessage2Log

Функция старого ядра для олдскулльных разработчиков. Логирует результаты в файл, который заранее определен в dbconn.php

Debug::dump

Представляет собой обертку над функцией var_dump. Просто выводит результат, но только в отформатированном виде.

Результат вывода:

Подробная статья про функции отладки кода в Битрикс

Debug::writeToFile

Из названия понятно, что данная функция записывает в файл. По сути это надстройка над функцией print_r.

Результат записи в файл:

Подробная статья про функции отладки кода в Битрикс

Debug::dumpToFile

Эта функция, как надстройка над var_dump позволяет записывать читабельные логи в файл.

Результат записи в файл:

Подробная статья про функции отладки кода в Битрикс

Оценка времени работы кода с Debug::getTimeLabels

Следующие функции – обертка над функцией microtime, которая возвращает расставленные метки времени. Такая функция полезна, когда нужно исследовать время работы функции или запроса.

Пример работы:

Подробная статья про функции отладки кода в Битрикс

Логирование вызова функции с помощью Helper::getBackTrace

Данная функция – надстройка над debug_backtrace. Выводит результаты в более упрощенном виде.

Пример работы:

Подробная статья про функции отладки кода в Битрикс

Заключение

В этой статье мы рассмотрели чаще используемые функции для отладки кода. Мы рекомендуем использовать битриксовые, так как они более адаптированы к выводу и разработке.