Search by

fiberphp / config

⚙️ FiberPHP 配置与环境管理 —— Config/Env 类,零 Workerman 依赖,可独立复用。

Maintainers

Package info

gitee.com/fiberphp/config.git

Issues

pkg:composer/fiberphp/config

Transparency log

Statistics

Installs: 2

Dependents: 8

Suggesters: 0

dev-master 2026-09-07 10:10 UTC

This package is auto-updated.

Last update: 2026-09-07 10:10:39 UTC


README

FiberPHP 配置与环境管理 —— Config / Env / ConfigRepository。零 Workerman 依赖,可独立复用(不依赖 framework)。

环境要求

  • PHP >= 8.3
  • ext-json
  • fiberphp/contractConfigRepository 实现其契约接口)

安装

composer require fiberphp/config

组件

组件职责
FiberPHP\Config\Config递归扫描 config/ 目录加载配置数组,支持点语法读写与配置缓存
FiberPHP\Config\ConfigRepositoryConfig 的仓库封装,实现 FiberPHP\Contract\ConfigRepository,供组件经容器注入
FiberPHP\Config\Env.env 文件解析与读取(get / int 类型转换)

基本用法

Config

use FiberPHP\Config\Config;

// 扫描 config/ 目录加载全部配置(自动排除缓存文件)
Config::load();

// 点语法读取
$debug = Config::get('app.debug', false);
$dbHost = Config::get('database.connections.mysql.host');

// 写入与判断
Config::set('app.name', 'Demo');
Config::has('app.debug');

// 自定义目录加载
Config::loadFromDir('/path/to/config');

// 配置缓存(生产环境优化)
Config::buildCache();   // 生成缓存文件
Config::clearCache();   // 清除缓存

Env

use FiberPHP\Config\Env;

Env::load('/path/to/project/.env');

$appName = Env::get('APP_NAME', 'FiberPHP');
$workers = Env::int('WORKER_COUNT', 4);

经容器注入契约

组件包不直接依赖本包时,可通过容器解析 FiberPHP\Contract\ConfigRepository 契约接口,由框架侧将本包的 ConfigRepository 实现绑定进容器:

use FiberPHP\Contract\ConfigRepository;

class SomeService
{
    public function __construct(
        private readonly ConfigRepository $config,
    ) {
    }
}

依赖关系

fiberphp/contract   ← ConfigRepository 契约接口
  ↑
fiberphp/config     ← 本包
  ↑
discovery / event / framework / http / router   ← 消费方

只需配置能力的包(如 event、router)可只 require 本包,不必拉入 framework 与 Workerman。路径助手函数(base_path() 等)由 framework 提供,不在本包范围。

License

MIT