Base class for creating own class of configuration. Better than a associative array :-)
Over Composer
composer require lawondyss/config
class DbConfig extend Lawondyss\Config
{
public string $driver;
public string $host;
public string $database;
public string $username;
public string $password;
public string $charset;
}
$dbConfig = DbConfig::fromArray([
'driver' => 'mysqli',
'host' => 'localhost',
'database' => 'example',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8'
]);
Simple get and set individual option.
$charset = $dbConfig->charset;
$dbConfig->charset = 'latin1';
Is implemented array access.
$pass = $dbConfig['password'];
$dbConfig['password'] = '*****';
If you want default values, then defined in class.
class DbConfig extend Lawondyss\Config
{
public string $driver = 'mysqli';
public string $host = 'localhost';
public string $database;
public string $username;
public string $password;
public string $charset = 'utf8';
}
$defaultConfig = new DbConfig;
Is possible "merge" with a customized options.
$lipsumDbConfig = $defaultConfig->withOptions([
'database' => 'lipsum',
'username' => 'lorem',
'password' => 'ipsum',
]);
If another code use options as associative array:
$dibi = new Dibi\Connection($lipsumDbConfig->toArray());
MIT