Skip to content

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-кэшем разбора]
Loading

Страницы возможностей

Раздел Что внутри
🗺️ Точечные пути 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.

Clone this wiki locally