Storage and loader for configuration object. Allows be initialised with defaults and load saved configuration from PHP, INI, JSON file.
- PHP >= 7.1
Install with Composer:
composer require php-strict/config
Define your own application configuration class by extending Config class:
use PhpStrict\Config\Config
class AppConfig extends Config
{
/**
* Project root
*
* @var string
*/
public $root = '/';
/**
* Debug enable|disable
*
* @var bool
*/
public $debug = false;
/**
* Database settings
*/
public $dbServer = '';
public $dbUser = '';
public $dbPassword = '';
public $dbName = '';
public $dbCharset = '';
public $dbTablePrefix = ''
/*
* another configuration fields here
*/
}
Example of configuration file content:
DEBUG=true
DB_SERVER=localhost
DB_USER=root
DB_PASSWORD=
DB_NAME=testproject
DB_CHARSET=utf8
DB_TABLE_PREFIX=
CACHE=true
Create and fill your configuration object with data from saved configuration file:
$config = new AppConfig();
$config->loadFromFile('config.ini');
Use configuration object fields directly on demand:
mysqli::__construct(
$config->dbServer,
$config->dbUser,
$config->dbPassword,
$config->dbName
);
Get subconfig by fields prefix:
$dbConfig = $config->getSlice('db');
mysqli::__construct(
$dbConfig->server,
$dbConfig->user,
$dbConfig->password,
$dbConfig->name
);
To execute the test suite, you'll need Codeception.
vendor\bin\codecept run