Search by

Lightweight Yii2 debugging helper with buffered dumps, call tracing, timers, counters, memory usage, and global shortcut functions.

Package info

github.com/twilightgluck/debug

Type:yii2-extension

pkg:composer/twilightgluck/debug

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.1.0 2026-07-26 19:41 UTC

This package is auto-updated.

Last update: 2026-08-26 19:52:14 UTC


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

Если хотя бы одно из этих имён уже занято, пакет не объявляет функции и сообщает о конфликте. Это предотвращает одновременное использование функций из разных реализаций.