mnlnk/php-dumper

Современный PHP-дампер с рекурсивным анализом данных, подсветкой типов и удобным визуальным представлением сложных структур.

Installs: 2

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/mnlnk/php-dumper

3.0.0 2026-01-26 12:27 UTC

This package is auto-updated.

Last update: 2026-01-26 12:31:23 UTC


README

Современный PHP-дампер с рекурсивным анализом данных, подсветкой типов и удобным визуальным представлением сложных структур.

📌 Основные возможности

  • Интерактивный HTML-дамп с раскрытием вложенных структур.
  • Подсветка типов данных.
  • Обнаружение и подсветка рекурсивных ссылок.
  • Поддержка всех типов данных: array, object, enum, Closure, resource и примитивов.
  • Настраиваемая глубина раскрытия вложенний.
  • Поддержка различных стилей оформления (как встроеных так и пользовательских).
  • Опциональная конфигурация через JSON-файл.
  • Совместимость с популярными фреймворками.
  • Простая установка через Composer.

⚙ Требования

  • PHP 8.0 или выше
  • Расширение mbstring

💻 Установка

composer require mnlnk/php-dumper

🚀 Быстрый старт

// snake_case
mk_dump($value);

// или

// camelCase
mkDump($value);

⚙ Конфигурация (опционально)

Создайте файл mk-dump.json в корне вашего проекта. Все параметры опциональны — если их не указывать, будут использованы значения по умолчанию.

{
  "max_str_len"        : 60,
  "charset"            : "UTF-8",
  "max_depth"          : 1,
  "short_ns_len"       : 4,
  "show_object_id"     : true,
  "show_enum_id"       : true,
  "show_resource_id"   : true,
  "show_indent_guides" : true,
  "root_path"          : "",
  "theme"              : "mk-dark"
}
  • max_str_len - Максимальная длина отображаемых строк. int: >= 3
  • charset - Кодировка строк. str: >= 1
  • max_depth - Максимальная глубина раскрытия вложенных структур (объекты, массивы). int: >= 0
  • short_ns_len - Сокращенние пространства имен (если указать -1, то сокращение не будет применяться). int: >= -1
  • show_object_id - Показывать ID объектов. bool
  • show_enum_id - Показывать ID перечислений. bool
  • show_resource_id - Показывать ID ресурсов. bool
  • show_indent_guides - Показывать вертикальные направляющие. bool
  • root_path - Корневой путь директории для визуальной обрезки путей в свойстве file анонимных функций (обычно это корень проекта). str: >= 0
  • theme - Тема оформления. str: >= 1 Указывается имя встроенной темы, или полный путь к пользовательскому CSS-файлу (eсли файл не найден, будет использована тема по умолчанию). Путь к пользовательскому файлу стилей обязательно должен быть полным, иначе дампер просто не найдет его.

Встроенные темы:

  • mk-dark (по умолчанию)
  • mk-light

Пользовательская тема:

{
  "theme": "C:\\themes\\my-custom-theme.css"
}

💡 Подсказки

  • Строка с комментарием, начинающаяся с //: и размещённая непосредственно перед вызовом mk_dump(), будет выведена в браузере и использована как заголовок (комментарий) дампа.

    //: Данные пользователя
    mk_dump($user);
  • Клик мыши на раскрывающемся блоке с зажатой клавишей Ctrl (Windows/Linux) или (Mac) развернёт все вложенные структуры сразу. То же самое работает и для сворачивания всех вложенных структур.

  • Наведение мыши на скобки объекта или массива с зажатой клавишей Ctrl (Windows/Linux) или (Mac) подсветит все его элементы.

📝 Примеры использования

//: Примитивы и массивы
mk_dump([
    'id' => 1,
    'active' => true,
    'roles' => ['admin', 'editor'],
    'meta' => null
]);

/* -- */

class User {
    public function __construct(
        private int $id,
        protected string $name,
        public array $roles
    ) {}
}

$user = new User(1, 'Admin', ['admin', 'user']);

//: Объект с вложенными данными
mk_dump($user);

/* -- */

enum Status: string {
    case Draft = 'draft';
    case Published = 'published';
}

//: Enum
mk_dump(Status::Published);

/* -- */

$multiplier = 10;

//: Замыкание с use()
mk_dump(function (int $value) use ($multiplier): int {
    return $value * $multiplier;
});

/* -- */

$a = new stdClass();
$b = new stdClass();
$a->b = $b;
$b->a = $a;

//: Циклические ссылки
mk_dump($a);

/* -- */

//: Ресурс
mk_dump(fopen(__FILE__, 'r'));

Результат будет выглядеть примерно так (использована тема mk-dark):

Пример дампа

Для работы с популярными фреймворками никакой специальной интеграции не требуется, просто подключите дампер к проекту.

Рекомендуется подключать только в dev-окружении.

🔗 Полезные ссылки