-
-
Notifications
You must be signed in to change notification settings - Fork 1
Feature Dump
github-actions[bot] edited this page Jul 8, 2026
·
1 revision
dump() и getDefinitionIds() дают заглянуть внутрь контейнера: какие id зарегистрированы, что настроено. Полезно для отладки и диагностики.
getDefinitionIds() возвращает список всех зарегистрированных идентификаторов (явные set, autowired, алиасы). dump() отдаёт структурированный снимок состояния: определения, режимы autowiring, теги, алиасы — без создания экземпляров.
$c->set(Db::class, fn () => new Db());
$c->alias('db', Db::class);
$c->tag(Db::class, 'infrastructure');
$c->getDefinitionIds(); // ['CloudCastle\...\Db', 'db', …]
$c->hasDefinition('db'); // true
print_r($c->dump()); // снимок: definitions / aliases / tags / autowiring-режимы- Диагностика без побочных эффектов — интроспекция не инстанцирует сервисы.
- Помогает найти опечатки в id и «мёртвые» регистрации.
- Основа для инструментов (список сервисов, генерация документации).
-
dump()— снимок конфигурации, а не рантайм-графа объектов (созданные экземпляры не показывает целиком). - Не заменяет профилирование для анализа производительности (см. Профилирование).
- Использовать в dev-командах/эндпоинтах диагностики для проверки состава контейнера.
- В тестах — ассертить наличие ключевых id через
hasDefinition()/getDefinitionIds().
- Логировать полный
dump()в проде: может содержать чувствительные id/конфиг — маскируйте и не пишите в общие логи. - Строить бизнес-логику на основе
dump()— это диагностический инструмент, а не публичный контракт данных.
| Контейнер | Аналог |
|---|---|
| PHP-DI |
getKnownEntryNames() ( |
| Symfony |
debug:container (консоль) — богатая интроспекция |
| Laravel |
getBindings() ( |
| Pimple |
keys() (только ключи) / нет полноценного dump (❌) |
| Nette | интроспекция скомпилированного контейнера (✅) |
CloudCastle, Symfony, Nette — структурированная интроспекция.
См. также: freeze() · Профилирование.
CloudCastle DI · · PHP 8.1+ · PSR-11
GitHub · Packagist · Releases · Discussions · Сравнение
Исходники Wiki — каталог wiki/ в репозитории (синхронизация через GitHub Actions)
- 🏗️ Архитектура
- ⚡ Быстрый старт
- 📊 Сравнение — 5 аналогов, таблица + победители
- 🧩 Возможности (детально) — каждая фича: принцип, +/−, аналоги
- 🧪 Bootstrap
- 🚀 Compiled container
- 🔗 Contextual binding
- 🤖 Autowiring
- 📄 Конфигурация
- 📖 Справочник конфигурации
- 📂 Сканирование классов
- 🌍 Глобальный реестр
- 🏷️ Теги и декораторы
- 🔗 call(), bind(), hooks
- 🔄 Прототипы, alias, lazy, lazyGhost
- 📋 Справочник API
- 🏭 Фабрики и singleton