phppkg/config

配置管理、加载、获取。支持 INI、JSON、YAML、NEON、PHP 格式文件

v1.1.4 2022-08-07 08:48 UTC

This package is auto-updated.

Last update: 2024-09-20 04:35:18 UTC


README

License Php Version Latest Stable Version Actions Status

🗂 配置加载、管理、合并、获取、设置等。

  • 配置数据加载和管理
  • 支持加载多个配置数据,将自动合并
  • 支持 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 项目

许可证

MIT