Функции отладки 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 - Данные для добавления в стек отладки
Функция 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);
// В различных местах кода
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
Функция 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()- выводит собранные результаты замеров
Отладочная панель debugPanel Albireo CMS
Системная панель отладки, отображаемая в подвале сайта. Собирает и выводит различную отладочную информацию.
Сигнатура
function debugPanel(mixed $data = null): void
Аргументы
- mixed
$data - Данные для добавления в панель. Принимает любые типы данных. Если не указан - выводит собранные данные.
Результат
Выводит форматированные отладочные данные в подвале сайта через функцию pr().
Типичное содержимое панели
- Ненайденные переводы языковых ключей
- Отладочные сообщения системы
- Произвольные данные разработчика
- Информация о запросах
- Предупреждения системы
Примеры использования в шаблоне layout/_end.php
debugPanel();
Требования
- Должна быть включена отладка в конфигурации (
'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
// )