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
Requires
- php: >=8.0
- ext-mbstring: *
- mnlnk/php-ex: 0.0.1
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: >= 3charset- Кодировка строк.str: >= 1max_depth- Максимальная глубина раскрытия вложенных структур (объекты, массивы).int: >= 0short_ns_len- Сокращенние пространства имен (если указать -1, то сокращение не будет применяться).int: >= -1show_object_id- Показывать ID объектов.boolshow_enum_id- Показывать ID перечислений.boolshow_resource_id- Показывать ID ресурсов.boolshow_indent_guides- Показывать вертикальные направляющие.boolroot_path- Корневой путь директории для визуальной обрезки путей в свойствеfileанонимных функций (обычно это корень проекта).str: >= 0theme- Тема оформления.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-окружении.
