php-strict/config

Storage and loader for configuration object.

v1.0.0 2019-04-06 05:27 UTC

This package is auto-updated.

Last update: 2024-10-16 16:24:37 UTC


README

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