Search by

phpsoftbox / config

inspector-who

Config component for the PhpSoftBox framework

Package info

github.com/phpsoftbox/config

pkg:composer/phpsoftbox/config

Statistics

Installs: 284

Dependents: 4

Suggesters: 1

Stars: 0

Open Issues: 0

v1.0.0 2026-09-29 10:23 UTC

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 не имеют специальной семантики.

Документация

Настройки в БД вынесены в отдельный компонент:

  • 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).