Releases: cloudcastle-apps/registry
Releases · cloudcastle-apps/registry
Release list
v1.0.0 — типобезопасный реестр значений и сервисов
Immutable
release. Only release title and notes can be modified.
Добавлено
- Точечные пути —
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.