🗂 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
- Required PHP 8.0+
composer require phppkg/config
create 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
INI
format parser written in PHP. - phppkg/jenkins-client - Designed to interact with Jenkins CI using its API.
- phppkg/phpgit - A Git wrapper library for PHP