phppkg / config
配置管理、加载、获取。支持 INI、JSON、YAML、NEON、PHP 格式文件
v1.1.4
2022-08-07 08:48 UTC
Requires
- php: >=8.0.1
- colinodell/json5: ^2.2
- nette/neon: ^3.3
- phppkg/ini: ~0.1
- symfony/yaml: ^6.0
- toolkit/fsutil: ^2.0
- toolkit/stdlib: ^2.0
- yosymfony/toml: ^1.0
README
🗂 配置加载、管理、合并、获取、设置等。
- 配置数据加载和管理
- 支持加载多个配置数据,将自动合并
- 支持 INI、JSON、YAML、TOML、NEON、PHP 格式文件
- 支持将配置数据导出到文件
- 语言数据管理
安装
composer
- 需要 PHP 8.0+
composer require phppkg/config
用法
创建和加载配置数据。加载多个文件,将自动合并数据。
use PhpPkg\Config\ConfigBox; $config = ConfigBox::new(); $config->loadFromFiles([ __DIR__ . '/test/testdata/config.ini', __DIR__ . '/test/testdata/config.neon', __DIR__ . '/test/testdata/config.yml', __DIR__ . '/test/testdata/config.toml', ]);
其他创建方式
use PhpPkg\Config\ConfigBox; $config = ConfigBox::newFromFiles([ // ... config file list ]); $config->loadIniFile('path/to/my.ini')
更多加载方法
loadFromFiles(array $filePaths, string $format = '')
loadFromStrings(string $format, string ...$strings)
loadFromStream(string $format, resource $stream)
loadIniFile(string $filepath)
loadJsonFile(string $filepath)
loadJson5File(string $filepath)
loadYamlFile(string $filepath)
loadPhpFile(string $filepath)
导出数据
// dump config vdump($config->getData());
输出:
CALL ON PhpPkg\ConfigTest\ConfigBoxTest(24): array(7) { ["name"]=> string(6) "inhere" ["age"]=> int(89) ["atIni"]=> string(6) "value0" ["arr0"]=> array(3) { [0]=> string(2) "ab" [1]=> int(23) [2]=> string(2) "de" } ["map0"]=> array(2) { ["key0"]=> string(4) "val0" ["key1"]=> string(4) "val1" } ["atNeon"]=> string(6) "value1" ["atYaml"]=> string(6) "value2" ["atToml"]=> string(6) "val at toml" }
获取值
/** @var PhpPkg\Config\ConfigBox $config */ $config->getInt('age'); // int(89) $config->getString('name'); // string('inhere') $config->get('arr0'); $config->get('map0'); // get value by key-path. $config->getInt('arr0.1'); // int(23) $config->getString('map0.key0'); // string('val0')
设置值
/** @var PhpPkg\Config\ConfigBox $config */ $config->set('name', 'INHERE'); $config->set('map0.key0', 'new value'); // set multi at once $config->sets([ 'key1' => 'value1', 'key2' => 'value2', // ... ]);
导出到文件
将配置数据导出到文件。
use PhpPkg\Config\ConfigBox; /** @var ConfigBox $config */ $config->exportTo('/path/to/file.json'); $config->exportTo('/path/to/my.conf', ConfigBox::FORMAT_YAML);
PHPPkg 项目
- phppkg/config - 🗂 配置加载、管理、合并、获取、设置等。
- phppkg/easytpl - ⚡️ PHP 的简单快速模板引擎
- phppkg/http-client - PHP 的易于使用 HTTP 客户端库
- phppkg/ini - 💪 PHP 编写的增强型
INI
格式解析器 - phppkg/jenkins-client - 用于通过其 API 与 Jenkins CI 交互
- phppkg/phpgit - PHP 的 Git 封装库