-
-
Notifications
You must be signed in to change notification settings - Fork 0
Features
github-actions[bot] edited this page Jul 16, 2026
·
1 revision
CloudCastle\Registry\Registry — типобезопасный реестр значений и сервисов:
суперсет joomla/registry, dflydev/dot-access-data и pimple в одном классе
с защитой от подмены и PSR-11 адаптером.
flowchart LR
R[Registry] --> D[Данные\nset / get / has / forget]
R --> T[Типизированное чтение\nstring / int / float / bool / array / instanceOf]
R --> L[Ленивые значения\ndefer / factory / protect]
R --> P[Защита\nfreeze / lock]
R --> S[Пространства\nglobal / scope / reset]
R --> E[Экспорт\nall / keys / extract / toJson / psr]
D --> DP[Точечные пути «a.b.c»\nс bounded-кэшем разбора]
| Раздел | Что внутри |
|---|---|
| 🗺️ Точечные пути |
get/set/has/forget по «a.b.c», кэш разбора, различение null и отсутствия, merge/extract
|
| 🛡️ Типизированный доступ |
string/int/float/bool/array/instanceOf — исключение вместо тихого каста |
| ⏳ Ленивые значения |
defer (shared), factory (на каждый доступ), protect (замыкание как значение) |
| 🔒 Защита от подмены |
freeze (реестр read-only навсегда), lock (точечная блокировка), контрактные исключения |
| 🌐 Пространства и PSR-11 |
Registry::global(), Registry::scope(), PSR-11 адаптер psr()
|
- Fail-safe по умолчанию — неверный тип, замороженный реестр, заблокированный ключ или отсутствующее обязательное значение — контрактное исключение, а не тихое поведение.
- Горячие пути без лишней работы — простые ключи идут одним hash-lookup; разбор точечных путей кэшируется (bounded, без роста памяти).
-
Ноль магии — никаких
__get/__call; всё API — явные методы со строгими типами. -
PSR-совместимость — контейнерный адаптер реализует
ContainerInterface, исключение отсутствия —NotFoundExceptionInterface.
CloudCastle Registry · · PHP 8.1+
GitHub · Packagist · Releases · Discussions
Email · Telegram · VK · Сетка · 💜 Поддержать проект
Исходники Wiki — каталог wiki/ в репозитории (синхронизация через GitHub Actions)