phpsoftbox / config
Config component for the PhpSoftBox framework
Requires
- php: ^8.5
- phpsoftbox/collection: ^1.0
- phpsoftbox/storage: ^1.0
- psr/simple-cache: ^3.0
Requires (Dev)
- phpsoftbox/cache: ^1.0
- phpsoftbox/cli-app: ^1.0
- phpsoftbox/cs-fixer: ^1.2.2
- phpsoftbox/encryptor: ^1.0
- phpunit/phpunit: ^13.3
Suggests
- phpsoftbox/env: Чтение APP_KEY из .env в командах config:encrypt/config:decrypt
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-29 11:51:24 UTC
README
Компонент для чтения и объединения конфигурации с поддержкой вложенных ключей и слоёв окружений.
Установка
composer require phpsoftbox/config
Быстрый старт
<?php declare(strict_types=1); use PhpSoftBox\Config\Config; $config = new Config(sources: [ ['app' => ['name' => 'demo'], 'debug' => false], fn () => ['debug' => true], ]); $name = $config->get('app.name'); // demo $debug = $config->get('debug'); // true
Config хранит только конфигурационные данные. Окружение приложения, его сравнение и effective
debug предоставляет компонент phpsoftbox/application через ApplicationEnvironment.
ConfigFactory принимает строковый идентификатор окружения только для выбора конфигурационного
слоя и формирования cache key:
$config = new ConfigFactory(environment: 'dev', baseDir: __DIR__ . '/..')->create();
baseDir — корень проекта, обязателен (раньше по умолчанию указывал в vendor/).
Произвольные ключи app.env и app.debug не имеют специальной семантики.
Документация
- docs/01-usage.md — доступ к значениям, read-only, ArrayAccess
- docs/02-merge-options.md — слияние источников и merge options
- docs/03-config-factory.md — ConfigFactory и переменные окружения
- docs/04-encrypted-value.md — интеграция с EncryptedValue
Настройки в БД вынесены в отдельный компонент:
phpsoftbox/db-config
CLI
php psb config:encrypt "secret" --cipherKey="your-key" php psb config:decrypt "ciphertext" --cipherKey="your-key"
Если --cipherKey не указан, используется APP_KEY: из .env (если установлен phpsoftbox/env), затем из
окружения процесса.
config:cache:clear очищает кеш окружения приложения (как у RunnerInterface::environment() из phpsoftbox/cli-app),
а с --environment — указанного.
Пути
AbstractPath собирает пути относительно корня проекта и ничего не создаёт: геттеры и createPath() работают и на
read-only FS. Каталог, в который будут писать, создаётся явно — ensureDirectory($path).