phppkg / config
Config manage, load, get. Supports INI,JSON,YAML,NEON,PHP format file
Installs: 3 462
Dependents: 0
Suggesters: 0
Security: 0
Stars: 12
Watchers: 3
Forks: 0
Open Issues: 1
Requires
- php: >=8.0.1
- colinodell/json5: ^2.2 || ^3.0
- nette/neon: ^3.3
- phppkg/ini: ~0.1
- symfony/yaml: ^6.0 || ^7.0
- toolkit/fsutil: ^2.0
- toolkit/stdlib: ^2.0
- yosymfony/toml: ^1.0
README
π 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
Install
composer
- Required PHP 8.0+
composer require phppkg/config
Usage
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', ]);
Created in other ways
use PhpPkg\Config\ConfigBox; $config = ConfigBox::newFromFiles([ // ... config file list ]); $config->loadIniFile('path/to/my.ini')
More load methods
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 data
// 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" }
Get value
/** @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')
Set value
/** @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 to file
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 Projects
- 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