php-strict / config
Storage and loader for configuration object.
v1.0.0
2019-04-06 05:27 UTC
Requires
- php: ^7.1
Requires (Dev)
- codeception/codeception: ^2.5.1
This package is auto-updated.
Last update: 2024-10-16 16:24:37 UTC
README
Storage and loader for configuration object. Allows be initialised with defaults and load saved configuration from PHP, INI, JSON file.
Requirements
- PHP >= 7.1
Install
Install with Composer:
composer require php-strict/config
Usage
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 );
Tests
To execute the test suite, you'll need Codeception.
vendor\bin\codecept run