Skip to content

php-strict/config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Config

Software License Build Status codecov Codacy Badge

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