🗂 Config load, management, merge, get, set and more.
- Config data load, management
- Support load multi config data, will auto merge
- Supports INI,JSON,YAML,TOML,NEON,PHP format file
- Support for exporting configuration data to file
- Language data management
composer
composer require phppkg/configcreate and load config data. load multi file, will auto merge data.
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)loadFromSteam(string $format, resource $stream)loadIniFile(string $filepath)loadJsonFile(string $filepath)loadJson5File(string $filepath)loadYamlFile(string $filepath)loadPhpFile(string $filepath)
// dump config
vdump($config->getData());Output:
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',
// ...
]);Export config data to file.
use PhpPkg\Config\ConfigBox;
/** @var ConfigBox $config */
$config->exportTo('/path/to/file.json');
$config->exportTo('/path/to/my.conf', ConfigBox::FORMAT_YAML);- phppkg/config - 🗂 Config load, management, merge, get, set and more.
- phppkg/easytpl - ⚡️ Simple and fastly template engine for PHP
- phppkg/http-client - An easy-to-use HTTP client library for PHP
- phppkg/ini - 💪 An enhanced
INIformat parser written in PHP. - phppkg/jenkins-client - Designed to interact with Jenkins CI using its API.
- phppkg/phpgit - A Git wrapper library for PHP