# config **Repository Path**: fiberphp/config ## Basic Information - **Project Name**: config - **Description**: ⚙️ FiberPHP 配置与环境管理 —— Config/Env 类与路径助手函数,零 Workerman 依赖,可独立复用。 - **Primary Language**: PHP - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-02 - **Last Updated**: 2026-09-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FiberPHP Config FiberPHP 配置与环境管理 —— `Config` / `Env` / `ConfigRepository`。零 Workerman 依赖,可独立复用(不依赖 framework)。 ## 环境要求 - PHP >= 8.3 - ext-json - `fiberphp/contract`(`ConfigRepository` 实现其契约接口) ## 安装 ```bash composer require fiberphp/config ``` ## 组件 | 组件 | 职责 | |---|---| | `FiberPHP\Config\Config` | 递归扫描 `config/` 目录加载配置数组,支持点语法读写与配置缓存 | | `FiberPHP\Config\ConfigRepository` | `Config` 的仓库封装,实现 `FiberPHP\Contract\ConfigRepository`,供组件经容器注入 | | `FiberPHP\Config\Env` | `.env` 文件解析与读取(`get` / `int` 类型转换) | ## 基本用法 ### Config ```php 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 ```php 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` 实现绑定进容器: ```php 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](LICENSE)