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