Подробная статья про функции отладки кода в Битрикс
Отладка кода – неотъемлемая часть разработки любого программиста. Разработчики пишут много кода, тестируют его, анализируют результаты, ищут ошибки. От этого процесса зависит качество решения и количество ошибок в нем. Поэтому без отладки не обойтись даже матерому разработчику, так как хороший программист всегда проверит работу своего кода, будь он даже простым.
В этой статье мы рассмотрим способы отладки кода с помощью чистых PHP-шных и битриксовых функции. Чтобы узнать про битриксовые функции отладки – советуем дочитать статью до конца.
Стандартные функции отладки кода
print_r
Функция 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. Выводит результаты в более упрощенном виде.
Пример работы:
Заключение
В этой статье мы рассмотрели чаще используемые функции для отладки кода. Мы рекомендуем использовать битриксовые, так как они более адаптированы к выводу и разработке.