hail / config
Config management tools
v0.10.1
2021-08-09 10:32 UTC
Requires
- php: >=8.0.0
- hail/arrays: ^0.10.0
- hail/optimize: ^0.10.0
Requires (Dev)
- symfony/yaml: ^5.3.6
- yosymfony/toml: ^1.0.4
Suggests
- ext-json: Support JSON parse
- ext-yaml: Support YAML parse
- symfony/yaml: Support YAML parse
- yosymfony/toml: Support TOML parse
README
Loaders
.yml / .yaml
Hail\Config\Loader\Yaml
key: sub: true
.json
Hail\Config\Loader\Json
{ "key": { "sub": true } }
.php
Hail\Config\Loader\Php
<?php return [ 'key' => [ 'sub' => true ], ];
Example
use Hail\Config\Env $env = new Env(__DIR__); $env->get('ENVIRONMENT'); use Hail\Config\Config; $cachePath = __DIR__ . DIRECTORY_SEPARATOR . 'cache'; $options = [ 'path' => __DIR__, // same as 'path' => ['env' => __DIR__, 'config' => __DIR__ . DIRECTORY_SEPARATOR . 'config'], 'loaders' => [ // if empty, the default loader is Hail\Config\Loader\Php Config::loader('yaml', $cachePath), Config::loader('json', $cachePath) ] ]; $config = new Config(...$options); $config->addLoader( new Hail\Config\Loader\Php() ); $config->get('filename.key.sub'); $env->get('ENVIRONMENT') === $config->env('ENVIRONMENT'); //true $config->env->get('ENVIRONMENT') === $config->env('ENVIRONMENT'); //true $config->env === $config->env(); //true