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?