twilightgluck / debug
Lightweight Yii2 debugging helper with buffered dumps, call tracing, timers, counters, memory usage, and global shortcut functions.
Requires
- php: >=8.1
- ext-mbstring: *
- yiisoft/yii2: ^2.0
Requires (Dev)
- phpunit/phpunit: ^10.5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Инструмент для быстрой отладки Yii2-приложений во время разработки.
Короткие глобальные функции позволяют вывести значение прямо в месте выполнения кода — без use, длинных вызовов и отдельной настройки. Одна–три буквы, две скобки — и значение сразу попадает в отладочный буфер, даже посередине генерации страницы.
Пакет также поддерживает накопление нескольких значений, вывод стека вызовов, измерение времени и памяти, именованные счётчики и завершение выполнения после вывода отладочных данных.
Требования
- PHP 8.1 или выше;
- Yii 2;
- расширение PHP
mbstring.
Установка
php composer.phar require twilightgluck/debug
Глобальные функции подключаются автоматически через autoload.files.
Использование класса
use TwilightGluck\Debug; Debug::log($value, 'пояснение'); Debug::send();
Глобальные функции
Рекомендуется использовать их для обращения к Debug, чтобы получить максимум удобства.
l()
Добавляет значение в отладочный буфер и возвращает его:
$user = l($repository->find($id), 'user');
r()
Возвращает накопленный буфер строкой:
$content = r();
s()
Выводит накопленный буфер:
s();
c()
Очищает отладочный буфер:
c();
h()
Завершает выполнение:
h();
t()
Выводит место вызова и завершает выполнение:
t();
Для вывода полного стека:
t(true);
sh()
Выводит накопленный буфер и завершает выполнение:
sh();
ls()
Добавляет значение, выводит буфер и возвращает значение:
$result = ls($service->run(), 'result');
lsh()
Добавляет значение, выводит буфер и завершает выполнение:
lsh($result, 'result');
Измерение времени
Время от одной общей точки:
$start = microtime(true); // Первый этап. Debug::time($start, 'first step'); // Второй этап. Debug::time($start, 'second step'); Debug::send();
Оба вызова показывают время, прошедшее с момента $start.
Последовательные интервалы:
$time = microtime(true); // Первый этап. $time = Debug::time($time, 'first step'); // Второй этап. $time = Debug::time($time, 'second step'); Debug::send();
Метод возвращает момент текущего измерения. Если сохранить его в $time, следующий вызов покажет время, прошедшее после предыдущего измерения.
Счётчики
Debug::count('name1'); Debug::count('name1', 4); Debug::send();
Первый вызов увеличивает счётчик на 1. Второй увеличивает тот же счётчик ещё на 4.
Значение $increment может быть отрицательным.
Если счётчик отсутствует, он автоматически создаётся. Если метка уже занята значением другого типа, метод
сохраняет сообщение об этом в отладочном буфере, не изменяет исходное значение и возвращает null.
Использование памяти
Debug::memory('memory'); Debug::send();
Метод добавляет в отладочный буфер текущее количество используемой памяти.
Форматирование вывода
По умолчанию пакет использует системный var_dump():
Debug::$useSystemDumper = true;
Для использования yii\helpers\VarDumper:
Debug::$useSystemDumper = false;
Конфликты глобальных функций
Перед объявлением шорткатов пакет проверяет весь набор глобальных функций:
l, r, s, c, h, t, sh, ls, lsh
Если хотя бы одно из этих имён уже занято, пакет не объявляет функции и сообщает о конфликте. Это предотвращает одновременное использование функций из разных реализаций.