Функции отладки Albireo CMS
Функция alert
Генерирует HTML-блок для отображения сообщений (обычно ошибок) с возможностью кастомизации стилей.
Сигнатура
function alert(string $message, string $class = 'bg-red800 t-white pad10 t90 t-center'): string
Аргументы
- string
$message
- Текст сообщения, который будет отображен внутри блока
- string
$class
- CSS-классы для стилизации блока. По умолчанию содержит стили для красного фона, белого текста, отступов и центрирования
Результат
HTML-код (string
) div элемента с переданным сообщением и классами стилей.
Примеры использования
// Стандартное сообщение об ошибке echo alert('Неверный пароль'); // Сообщение с кастомными стилями echo alert('Профиль обновлен', 'bg-blue100 pad15 rounded shadow'); // Использование в условной логике if ($error) { echo alert($error->getMessage()); }
Примечания
- Функция не экранирует HTML в сообщении - при необходимости это нужно делать перед вызовом
- По умолчанию использует стили, подходящие для сообщений об ошибках (красный фон)
- Для разных типов сообщений (ошибка, предупреждение, успех) можно передавать разные классы
Функция debug
Отладочная функция для вывода контекста выполнения с форматированным представлением.
Сигнатура
function debug(...$infos): void
Аргументы
- mixed
...$infos
- Произвольное количество дополнительных переменных для отображения
Результат
Выводит в поток вывода HTML-блок с отладочной информацией, но не возвращает значение.
Примеры использования
// Простой вызов с контекстом function calculate($x, $y) { debug('Начало вычислений'); // ... } // Вызов с дополнительной информацией $user = getUser(123); debug('Получен пользователь', $user); // Использование с debugAdd() debugAdd('Промежуточное значение', $temp); processData(); debug('Результат обработки');
Функция debugAdd
Добавляет данные в стек отладки для последующего вывода при вызове debug()
.
Сигнатура
function debugAdd(...$adds): void
Аргументы
- mixed
...$adds
- Данные для добавления в стек отладки
Функция debugBenchmarkStart
Функция для начала замера времени выполнения участка кода в целях профилирования.
Сигнатура
function debugBenchmarkStart(string $mark): void
Аргументы
- string
$mark
- Уникальная метка для идентификации замера. Используется для сопоставления с
debugBenchmarkEnd()
.
Результат
Функция не возвращает значение, но сохраняет время начала замера в глобальный массив $debugBenchmark
.
Примеры использования
// В конфигурации define('DEBUG_BENCHMARK', true); // В коде debugBenchmarkStart('database_query'); // Выполнение запроса к базе данных debugBenchmarkEnd('database_query'); debugBenchmarkStart('file_processing'); // Обработка файлов debugBenchmarkEnd('file_processing'); // Вывод результатов в конце скрипта debugBenchmarkOut();
Примечания
- Требует предварительного определения константы
DEBUG_BENCHMARK
- Использует
hrtime()
для максимально точного замера времени - Работает в паре с
debugBenchmarkEnd()
иdebugBenchmarkOut()
- Хранит данные в глобальной переменной
$debugBenchmark
- Если
DEBUG_BENCHMARK
не определен, функция молча завершается
Связанные функции
debugBenchmarkEnd()
- завершает замер времени для меткиdebugBenchmarkOut()
- выводит собранные результаты замеров
Функция debugBenchmarkEnd
Завершает замер времени выполнения участка кода, начатый debugBenchmarkStart()
, и сохраняет результат.
Сигнатура
function debugBenchmarkEnd(string $mark, string $before = ''): void
Аргументы
- string
$mark
- Метка, соответствующая вызову
debugBenchmarkStart()
- string
$before
- Дополнительный комментарий, который будет добавлен к результату замера (необязательный)
Результат
Функция не возвращает значение, но сохраняет время выполнения в миллисекундах в глобальный массив $debugBenchmark
.
Примеры использования
debugBenchmarkStart('image_processing'); // Обработка изображений debugBenchmarkEnd('image_processing', 'Processed 50 images'); debugBenchmarkStart('complex_calculation'); // Сложные вычисления debugBenchmarkEnd('complex_calculation');
Примечания
- Требует предварительного вызова
debugBenchmarkStart()
с такой же меткой - Преобразует наносекунды в миллисекунды (1e+6)
- Если метка не найдена, функция молча завершается
- Дополнительный комментарий добавляется через разделитель ' # '
- Для работы требует определения
DEBUG_BENCHMARK
Связанные функции
debugBenchmarkStart()
- начинает замер времениdebugBenchmarkOut()
- выводит результаты всех замеров
Функция debugBenchmarkOut
Выводит сводную информацию по всем проведенным замерам времени и общую статистику выполнения.
Сигнатура
function debugBenchmarkOut(): void
Результат
Функция выводит:
- Массив всех замеров времени в формате [метка => время_в_мс]
- Общее время выполнения скрипта в секундах
- Текущее использование памяти в мегабайтах
Примеры использования
// В начале скрипта define('DEBUG_BENCHMARK', true); define('TIME_START', microtime(true)); // В различных местах кода debugBenchmarkStart('db_query'); // запрос к БД debugBenchmarkEnd('db_query'); debugBenchmarkStart('file_operation'); // работа с файлами debugBenchmarkEnd('file_operation'); // В конце скрипта debugBenchmarkOut();
Выводимая информация
- Результаты всех замеров через
pr()
- Общее время выполнения:
microtime(true) - TIME_START
- Использование памяти:
memory_get_usage()
Требования
- Требует определения
DEBUG_BENCHMARK
Связанные функции
debugBenchmarkStart()
- начинает замерdebugBenchmarkEnd()
- завершает замер
Формат вывода
Пример вывода:
Array ( [db_query] => 15.642 [file_operation] => 102.351 ) 0.128s/5.243Mb
Отладочная панель debugPanel Albireo CMS
Системная панель отладки, отображаемая в подвале сайта. Собирает и выводит различную отладочную информацию.
Сигнатура
function debugPanel(mixed $data = null): void
Аргументы
- mixed
$data
- Данные для добавления в панель. Принимает любые типы данных. Если не указан - выводит собранные данные.
Результат
Выводит форматированные отладочные данные в подвале сайта через функцию pr()
.
Типичное содержимое панели
- Ненайденные переводы языковых ключей
- Отладочные сообщения системы
- Произвольные данные разработчика
- Информация о запросах
- Предупреждения системы
Примеры использования
// Добавление предупреждения о ненайденном переводе if (!$translation) { debugPanel("Отсутствует перевод для ключа: {$key}"); } // Логирование параметров запроса debugPanel([ 'module' => $module, 'action' => $action, 'params' => $_REQUEST ]);
Требования
- Должна быть включена отладка в конфигурации (
'debug' => true
)
Рекомендации
- Полезно для отладки сложных процессов
- Можно добавлять метки времени для анализа производительности
Функция debugTrace
Форматированный вывод стека вызовов функций для отладки сложных сценариев.
Сигнатура
function debugTrace(int $limit = 0): void
Аргументы
- int
$limit
- Количество отображаемых вызовов. 0 - показать весь стек. Значение увеличивается на 1 для исключения текущей функции.
Формат вывода
HTML-блок с подсветкой элементов:
- Синий цвет для ключей (file, function, line)
- Обычный текст для значений
- Отдельное форматирование аргументов
Особенности
- Удаляет первый элемент стека (текущий вызов
debugTrace
) - Сортирует элементы по порядку: file, function, line, args
- Очищает пути от
LEVEL_UP_DIR
- Форматирует сложные аргументы через
prMakeStr()
- Использует CSS-стили для лучшей читаемости
Рекомендации по использованию
- Используйте для отладки сложных цепочек вызовов
- Можно ограничивать глубину вывода для больших стеков
Основная функция отладки pr
Универсальный инструмент для форматированного вывода отладочной информации в Albireo CMS.
Сигнатура
function pr(mixed ...$vars): void
Аргументы
- mixed
...$vars
- Произвольное количество переменных любого типа для отображения
Особенности вывода
- Каждая переменная выводится в отдельном блоке
- Результат форматируется для удобного чтения
- Автоматические отступы между блоками
Примеры использования
// Вывод простой переменной pr($userId); // Вывод нескольких переменных pr($_REQUEST, $userData, $config); // Использование в отладочных целях if ($error) { pr('Error occurred:', $error->getMessage(), $error->getTrace()); }
Рекомендации
- Используйте для быстрой отладки в любом месте кода
Функция prMakeStr
Вспомогательная функция для форматированного вывода переменных в отладочной информации.
Сигнатура
function prMakeStr(mixed $var): string
Аргументы
- mixed
$var
- Переменная любого типа для форматирования
Возвращаемое значение
Строка (string
) с HTML-разметкой, представляющая форматированное значение переменной.
Особенности обработки
- NULL: преобразуется в строку 'NULL'
- Boolean: TRUE → 'TRUE', FALSE → 'FALSE'
- Пустая строка: преобразуется в '- EMPTY STRING -'
- Остальные типы: обрабатываются через
print_r()
Примеры использования
// Специальные значения echo prMakeStr(null); // 'NULL' echo prMakeStr(true); // 'TRUE' echo prMakeStr(''); // '- EMPTY STRING -' // Массивы $data = ['id' => 123, 'name' => 'John']; echo prMakeStr($data); // Array // ( // [id] => 123 // [name] => John // ) // Объекты $obj = new stdClass(); $obj->property = 'value'; echo prMakeStr($obj); // stdClass Object // ( // [property] => value // )