Advanced configuration manager library.
- PHP 7.4 or higher
- ParameterBag Library
composer require initphp/configclass MyAppConfig extends \InitPHP\Config\Classes
{
    public $url = 'http://lvh.me';
    
    public $name = 'LocalHost';
    
    public $db = [
        'host'  => 'localhost',
        'user'  => 'root'
    ];
    
    // ...
}$config = new MyAppConfig();
echo $config->get('url'); 
// Output : "http://lvh.me"
echo $config->get('details', 'Not Found'); 
// Output : "Not Found"
echo $config->get('db.host');
// Output : "localhost"
if($config->has('name')){
    echo $config->get('name');
    // Output : "LocalHost"
}Lets you define properties of an object or class as a configuration.
public function setClass(string|object $classOrObject): self;Example :
namespace App\Config;
class AppConfig
{
    public $url = 'http://lvh.me';
}
class Database 
{
    public $host = 'localhost';
}use \InitPHP\Config\Config;
// Class
Config::setClass(\App\Config\AppConfig::class);
// or Object
Config::setClass(new \App\Config\Database());
Config::get('appconfig.url');
Config::get('database.host');Imports an array.
public function setArray(?string $name, array $assoc = []): self;Example :
require_once "vendor/autoload.php";
use \InitPHP\Config\Config;
$configs = [
    'url'   => 'http://lvh.me',
    'db'    => [
        'host'  => 'localhost',
        'user'  => 'db_user',
        'pass'  => '',
        'name'  => 'database'
    ],
];
Config::setArray('site', $configs);
Config::get('site.url');
Config::get('site.db.host', '127.0.0.1');
Config::get('site.db.user', 'root');Loads the configurations in the PHP file, which returns an associative array.
public function setFile(?string $name, string $path): self;Example :
public_html/db_config.php :
<?php 
return [
    'HOST'  => 'localhost',
    'USER'  => 'root',
    'PASS'  => '',
    'NAME'  => 'database'
];require_once "vendor/autoload.php";
use \InitPHP\Config\Config;
Config::setFile('DB', __DIR__ . '/public_html/db_config.php');
// Usage : 
Config::get('db.host');Loads PHP files in a directory as configuration files.
public function setDir(?string $name, string $path, array $exclude = []): self;Example :
public_html/config/db.php :
<?php 
return [
    'HOST'  => 'localhost',
    'USER'  => 'root',
    'PASS'  => '',
    'NAME'  => 'database'
];public_html/config/site.php :
<?php 
return [
    'URL'   => 'http://lvh.me',
    // ...
];require_once "vendor/autoload.php";
use \PHPConfig\Config;
Config::setDir('app', __DIR__ . '/public_html/config/');
// Usage : 
Config::get('app.site.url');
Config::get('app.db.host');Copyright © 2022 MIT License