Config Trait

trait ConfigTrait

Agile Core implements support for read configuration files of different formats

Introduction

This trait can be added to any object to load a configuration. Configuration files can be of 4 types : php, php-inline, json, yaml.

Loading can be done in this way:

$object = new Object(); $object->readConfig(‘config.php’, ‘php’);

After loading, configuration elements can be retrieved in this way:

$object->getConfig(‘element_key’, ‘if not defined use this as default’);

if you need an element that is declared inside an array you can use a special syntax:

$object->getConfig(‘level1_array/level2_array/element_key’, ‘if not defined use this as default’);

Element in config can be defined even manually:

$object->setConfig(‘element_key’, $element);

Supported Formats

php

Configuration is defined as a return statement

return [

‘var A’ => new UserClass(), ‘var B’ => 2, ‘var C’ => [

‘2nd-level’ => ‘var D’,

],

];

JSON

Configuration is defined as json

YAML

Configuration is defined as yaml

Methods

ConfigTrait::readConfig($files = ['config.php'], $format = 'php')

Read config file or files and store it in $config property

ConfigTrait::setConfig($paths = [], $value = null)

Manually set configuration option

ConfigTrait::getConfig($path, $defaultValue = null)

Get configuration element