-
-
Notifications
You must be signed in to change notification settings - Fork 0
Feature Protection
github-actions[bot] edited this page Jul 16, 2026
·
1 revision
Уникальная пара freeze/lock: конфигурация, которую нельзя подменить
после загрузки, и критичные ключи, защищённые точечно. Ни у одного
из пяти аналогов этого нет.
-
freeze()— реестр становится read-only навсегда:set/merge/forget/defer/factoryбросаютFrozenRegistryException. Обратной операции нет намеренно (fail-safe: «оттаять» прод-конфиг нельзя). -
lock($key)— точечная блокировка: перезапись и удаление ключа —LockedKeyException; остальные ключи свободны. - Чтение всегда работает;
isFrozen()/isLocked($key)— интроспекция.
use CloudCastle\Registry\Registry;
$config = new Registry(['api_key' => 'секрет', 'debug' => false]);
$config->lock('api_key'); // ключ API не подменить
$config->set('debug', true); // остальное — свободно
$config->freeze(); // конфиг загружен — фиксируем
$config->set('debug', false); // FrozenRegistryException
$config->get('api_key'); // чтение работаетЗагрузчик приложения собирает конфигурацию слоями (merge), блокирует
секреты (lock) и замораживает реестр (freeze) до передачи управления
бизнес-коду. Любая попытка плагина или скомпрометированной зависимости
подменить параметры подключения заканчивается исключением в логах,
а не тихой подменой.
CloudCastle Registry · · PHP 8.1+
GitHub · Packagist · Releases · Discussions
Email · Telegram · VK · Сетка · 💜 Поддержать проект
Исходники Wiki — каталог wiki/ в репозитории (синхронизация через GitHub Actions)