Skip to content

Releases: cloudcastle-apps/registry

v1.0.0 — типобезопасный реестр значений и сервисов

Choose a tag to compare

@Zorin-Alexey Zorin-Alexey released this 16 Jul 20:16
Immutable release. Only release title and notes can be modified.
bb9101d

Добавлено

  • Точечные путиset/get/has/forget по «a.b.c» с bounded-кэшем разбора; различение null-значения и отсутствующего ключа; рекурсивный merge, extract подветки, toJson с юникодом, all/keys/count/isEmpty.
  • Типизированный fail-safe доступstring/int/float/bool/array/instanceOf/require: контрактное исключение вместо тихого каста; default не маскирует ошибку типа.
  • Ленивые значенияdefer (раз при первом чтении), factory (новое значение на каждый доступ), protect (замыкание как значение).
  • Защита от подменыfreeze() (реестр read-only навсегда) и lock($key) (точечная блокировка) — уникально среди аналогов.
  • PSR-11 адаптерpsr(): отсутствие ключа — исключение, реализующее NotFoundExceptionInterface.
  • Scoped-пространстваRegistry::global(), Registry::scope($name), Registry::reset().

Качество

Покрытие 100 %, MSI 100 % (129 killed / 0 escaped), phpstan max + psalm 1 + phpmd + deptrac + rector — чисто. Победа во всех 8 бенчмарках против joomla/registry, dflydev/dot-access-data, pimple, league/container и illuminate/container: простое чтение ×2.4 к ближайшему, has ×3.4, ленивый сервис ×1.9, merge ×7.4.