Config

Компонент управления конфигурациями

Package: alonity\config\Config

Ручная установка

composer require alonity/config

Использование

Компонент основан на статическом подходе, по этому ко всем методам необходимо обращаться соответственно.

Обращение к конфигам

Для получения полного конфига, используйте метод get. Где в качестве первого параметра передается имя конфига без расширения, а в качестве второго - директория.

По умолчанию, используется директория по умолчанию - "../../../../app"

$myConfig = Config::get('MyConfig');

Предзагрузка конфигов

Если вы обращаетесь к конфигу через метод get в первый раз, то конфиг будет загружен в память автоматически, однако вы можете произвести предварительную загрузку с помощью метода loader, который принимает в качестве параметра массив имен конфигов или имен и путей. Если пути не заданы, то используется путь по умолчанию из свойства $path.

Config::loader([
    'MyConfig',
    'MyOtherConfig' => '../../../path/to/configs',
]);

$myConfig = Config::get('MyOtherConfig'); // Загрузки не произойдет

Обращение к параметрам

Для прямого обращения к параметрам конфига, без обращения к самому конфигу, можно использовать метод getValue, который принимает в качестве первого параметра имя конфига, а в качестве второго - ключ.

Обратите внимание, что если вы обращаетесь к конфигу впервые, то загрузка произойдет из директории заданной по умолчанию. Чтобы это изменить, измените директорию по умолчанию или произведите загрузку конфига через метод loader или через get

$example = Config::get('MyConfig', 'example');

Если вы используете многомерные массивы, то обратитесь к значению можно через разделитель "."

$deep = Config::get('MyConfig', 'example.deep.deep'); // ['example']['deep']['depp']

Выставление значений

Чтобы выставить значение конфига, вы можете использовать метод setValue, который задает только одно значение. Задавать значения в многомерном массиве, можно так же через разделитель, как показано в примере выше.

В качестве первого параметра указывается имя конфига, в качестве второго - ключ, а в качестве третьего - значение.

Config::setValue('MyConfig', 'example');

Если вам необходимо полностью установить значение всего конфига, используйте метод set

Config::set('MyConfig', [
    'param1' => 'value1',
    'param2' => 'value2',
    'param3' => [
        'deep' => 'value3'
    ],
]);

Удаление значений

Для удаления значения из конфига, используйте метод unsetValue

Config::unsetValue('MyConfig', 'param3.deep');

Если вам необходимо полностью выгрузить конфиг из памяти, обратитесь к методу unset.

Обратите внимание, что после выгрузки, вы по прежнему сможете обратитесь к конфигу через методы loader, get и getValue

Config::unset('MyConfig');

Удаление конфига

Для полного удаления конфига, используйте метод delete. Он так же будет выгружен из памяти.

В качестве второго параметра можно указать директорию файла конфига, иначе будет использоваться путь по умолчанию.

Config::delete('MyConfig');

Сохранение конфига

Методы set, setValue, unset, unsetValue задают значению в памяти, но не сохраняют их в файлах конфигов. Это означает, что после перезагрузки страницы, значения будут сброшены к исходным. Чтобы этого не произошло, необходимо сохранить конфиг с помощью метода save, который принимает в качестве первого параметра имя конфига, а в качестве второго - директорию конфига. Если директория не задана, используется путь по умолчанию.

if(!Config::save('MyConfig')){
    echo 'Something was wrong. Check file permissions';
}

Last updated

Was this helpful?