@MarkLb

Как организовать хранение настроек в Yii2?

Есть несколько групп параметров настроек, которые необходимо редактировать.
Пример параметров

-- Partner
- percent_deduction
- minimum_withdraw
-- Yandex_Money
- bill
- secret_key


Как можно грамотно реализовать редактирование/использование данных настроек?

Пока вижу такой вариант:

1. Создать таблицу settings, с полями:
- module - имя группы настроек
- data - параметры настроек в JSON
2. Создать модель, на которой навесить поведение конвертации данных в JSON на beforeSave, и конвертацию из JSON в объект на afterFind()
3. Редактирование будет проводиться в отдельной форме, созданную под настройку.
4. Загрузка параметров будет навешана на bootstrap, который будет получать все настройки и записывать их в params, в ячейку с именем названия группы настроек. Т.е: Yii::$app->params['partner']['percent_deduction']. Также можно добавить кэш, который будет при изменениях в настройках сбрасываться.

Но не нравится этот метод из-за:
1. Магия в формах. По-сути, только форме известны реальные имена настроек. Что-то вроде:
Скриншот-пример
Hv0qqQl.jpg

2. Неудобность использования параметров, опять таки очень легко допустить ошибку и постоянно придётся подглядывать настройки в форме.

Ещё на ум приходит вариант создать отдельные классы настроек, и создать поведение на основе Symfony Serializer, но пока не придумал что к чему и решил поинтересоваться, ведь возможно есть уже грамотные варианты, которые можно глянуть.
  • Вопрос задан
  • 200 просмотров
Пригласить эксперта
Ответы на вопрос 1
@grinat
https://github.com/yii2mod/yii2-settings

но можешь сделать свое, тогда лучше сделай чтобы конфиги шли из json либо yml файла, тогда и админка не будет нужна.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы