Skip to content

Feature Scopes

github-actions[bot] edited this page Jul 16, 2026 · 1 revision

🌐 Пространства и PSR-11

← Возможности · Главная · Сравнение

Глобальный реестр процесса, именованные изолированные пространства и стандартный контейнерный интерфейс для передачи потребителям.

Принцип работы

  • Registry::global() — общий реестр процесса (ленивый синглтон).
  • Registry::scope('имя') — именованное пространство: scope('config') и scope('http') не пересекаются; повторный вызов возвращает тот же экземпляр.
  • Registry::reset() — сброс глобального реестра и всех пространств (изоляция тестов).
  • psr() — адаптер Psr\Container\ContainerInterface поверх реестра: get() отсутствующего ключа бросает исключение, реализующее NotFoundExceptionInterface; адаптер видит «живые» изменения реестра.
use CloudCastle\Registry\Registry;

Registry::scope('config')->set('лимит', 10);
Registry::scope('http')->set('timeout', 30);

Registry::scope('config')->int('лимит');   // 10
Registry::scope('http')->has('лимит');     // false — изоляция

// потребителю, ожидающему PSR-11
$container = Registry::scope('config')->psr();
$container->get('лимит');                   // 10
$container->get('нет');                     // NotFoundExceptionInterface

// в tearDown() тестов
Registry::reset();

См. также

Clone this wiki locally