DEV Community

Cover image for How to work with configs in Mezon Framework
alexdodonov
alexdodonov

Posted on

How to work with configs in Mezon Framework

Mezon has it's own routine for working with configs. It can be accesed with a set of functions, wich are described below.

This is the way how to start using it in your project:

composer require mezon/conf
Enter fullscreen mode Exit fullscreen mode

Or get it directly from repo;

Getting access to the key in config can be done with Conf::getValue($route, $defaultValue = false) function. It returns config value with route $route and return $defaultValue if this key was not found. For example:

$value = Conf::getValue('res/images/favicon', 'http://yoursite.com/res/images/favicon.ico');
Enter fullscreen mode Exit fullscreen mode

Setting values for the config key can be done by calling Conf::setConfigValue($route, $value) or Conf::addConfigValue($route, $value) function. The main difference between these two functions is that the first one sets scalar key, and the second one adds element to the array in config. Here is small example:

Conf::setConfigValue('res/value', 'Value!');
var_dump(Conf::getValue('res/value')); // displays 'Value!' string

Conf::addConfigValue('res/value', 'Value 1!');
Conf::addConfigValue('res/value', 'Value 2!');
var_dump(Conf::getValue('res/value')); // displays array( [0] => 'Value 1!' , [1] => 'Value 2!' )
Enter fullscreen mode Exit fullscreen mode

You also can use typed versions of these methods:

Conf::getValueAsArray(...);
Conf::getValueAsObject(...);
Conf::getValueAsString(...);

Conf::setConfigArrayValue(...);
Conf::setConfigObjectValue(...);
Conf::setConfigStringValue(...);
Enter fullscreen mode Exit fullscreen mode

You can set multyple values to the config:

// here $settings is an associative array
Conf::setConfigValues(array $settings);
Enter fullscreen mode Exit fullscreen mode

Or you can read config from JSON:

Conf::loadConfigFromJson(string $pathToConfig);
Enter fullscreen mode Exit fullscreen mode

If you are not shure that the key exists, then you can check it:

Conf::setConfigValue('res/value', 'Value!');

var_dump(Conf::configKeyExists('res')); // true
var_dump(Conf::configKeyExists('res2')); // false
var_dump(Conf::configKeyExists('res/value')); // true
Enter fullscreen mode Exit fullscreen mode

You can also able to delete config key

Conf::setConfigValue('res/value', 'Value!');
Conf::deleteConfigValue('res/value');
var_dump(Conf::configKeyExists('res/value')); // false
var_dump(Conf::configKeyExists('res')); // also false
Enter fullscreen mode Exit fullscreen mode

Or clear the entire config:

Conf::clear();
Enter fullscreen mode Exit fullscreen mode

That's all you need to know about config read/write.

Learn more

More information can be found here:

Twitter
Mezon Framework

It will be great if you will contribute something to this project. Documentation, sharing the project in your social media, bug fixing, refactoring, or even submitting issue with question or feature request. Thanks anyway )

Discussion (0)