jenner/config

PHP configurations loading

0.5.0 2014-10-19 23:59 UTC

This package is auto-updated.

Last update: 2021-04-14 04:47:34 UTC


README

Build Status Latest Stable Version Total Downloads License

PHP configurations loading library. It is made to enable your application to have different configurations depending on the environment it is running in. For example, your application can have different configurations for unit tests, development, staging and production. A good practice would be to not include your production or staging configurations in your version control. To do this, simply add a .gitignore file to your configs/environment directory with the following lines:

*
!.gitignore

Requirements

This library uses PHP 5.3+.

Installation

It is recommended that you install the Config library through composer. To do so, add the following lines to your composer.json file.

{
    "require": {
       "sinergi/config": "dev-master"
    }
}

Usage

Setup the configurations directory:

use Sinergi\Config\Config;

$config = new Config(__DIR__ . "/configs");

Optionally, you can also setup the environment. Setting up the environment will merge normal configurations with configurations in the environment directory. For example, if you setup the environment to be prod, the configurations from the directory configs/prod/* will be loaded on top of the configurations from the directory configs/*. Consider the following example:

$config->setEnvironment('prod');

You can than use the configurations like this:

$config->get('app.timezone');

Getter

The configuration getter uses a simple syntax: file_name.array_key.

For example:

$config->get('app.timezone');

You can optionally set a default value like this:

$config->get('app.timezone', "America/New_York");

You can use the getter to access multidimensional arrays in your configurations:

$config->get('database.connections.default.host');

Setter

Alternatively, you can set configurations from your application code:

$config->set('app.timezone', "Europe/Berlin");

You can set entire arrays of configurations:

$config->set('database', [
    'host' => "localhost",
    'dbname' => "my_database",
    'user' => "my_user",
    'password' => "my_password"
]);

Examples

See more examples in the examples folder.

Example of a configuration file:

return [
    'timezone' => "America/New_York"
];