На гитхабе обновлена работа с конфигом. Погонял, потестил у себя — работает все так, как ожидается. Допустим, есть плагин 'test' и у него такой конфиг-файл:
$config['zero'] = 0;
И мы можем получить значение конфига плагина обычным путем:
// Получить значение конфига плагина
Config::Get('plugin.test'); // ['zero => 0]
Но можем так же прочитать те значения конфига плагина, которые сохранялись через Config::WritePluginConfig():
// Получить значение сохраненного конфига плагина
Config::ReadPluginConfig('test'); // null
Изначально это — null.
Теперь сохраняем программно новые значения и смотрим, что имеем на выходе:
Config::WritePluginConfig('test', ['one' => 1, 'two' => 2]);
Config::Get('plugin.test'); // ['zero => 0, 'one' => 1, 'two' => 2]
Config::ReadPluginConfig('test'); // ['one' => 1, 'two' => 2]
Т.е. обычный Config::Get() возвращает все ключи конфига, как из конфиг-файла, так и сохраненные программно, а Config::ReadPluginConfig() возвращает только программно сохраненные ключи конфига.
Последний пример примечателен тем, что через конфиг плагина он воздействует на общий конфиг приложения — добавляет значение в секцию 'router.uri'.
В принципе, мы могли бы воздействовать на конфиг приложения напрямую через Config::Set() или через Config::WriteCustomConfig(). Но использование Config::WritePluginConfig() является более предпочтительным и вот почему: если плагин отключается в админке, то все его настройки, которые были сделаны через Config::WritePluginConfig() также будут отключены автоматически.
И мы можем получить значение конфига плагина обычным путем:
Но можем так же прочитать те значения конфига плагина, которые сохранялись через Config::WritePluginConfig():
Изначально это — null.
Т.е. обычный Config::Get() возвращает все ключи конфига, как из конфиг-файла, так и сохраненные программно, а Config::ReadPluginConfig() возвращает только программно сохраненные ключи конфига.
Еще примеры программных манипуляций конфигом:
Последний пример примечателен тем, что через конфиг плагина он воздействует на общий конфиг приложения — добавляет значение в секцию 'router.uri'.
В принципе, мы могли бы воздействовать на конфиг приложения напрямую через Config::Set() или через Config::WriteCustomConfig(). Но использование Config::WritePluginConfig() является более предпочтительным и вот почему: если плагин отключается в админке, то все его настройки, которые были сделаны через Config::WritePluginConfig() также будут отключены автоматически.