-
-
Notifications
You must be signed in to change notification settings - Fork 0
Quick start
github-actions[bot] edited this page Jul 16, 2026
·
1 revision
composer require cloudcastle/registry<?php
declare(strict_types=1);
use CloudCastle\Registry\Registry;
// конфигурация с точечными путями
$config = new Registry(['db' => ['host' => 'localhost']]);
$config->set('db.port', 5432);
$config->get('db.host'); // 'localhost'
$config->int('db.port'); // 5432 — тип гарантирован
$config->string('db.port'); // TypeMismatchException
// ленивый сервис и защита
$config->defer('pdo', static fn (): PDO => new PDO('...'));
$config->lock('db.host');
$config->freeze();-
Слои конфигурации:
new Registry($base)→merge($envLayer)→lock('секреты')→freeze(). -
Реестр сервисов:
deferдля соединений,factoryдля request-scoped значений,psr()— потребителям, ожидающим PSR-11. -
Изоляция подсистем:
Registry::scope('billing'),Registry::scope('http'); в тестах —Registry::reset().
CloudCastle Registry · · PHP 8.1+
GitHub · Packagist · Releases · Discussions
Email · Telegram · VK · Сетка · 💜 Поддержать проект
Исходники Wiki — каталог wiki/ в репозитории (синхронизация через GitHub Actions)