1) Есть основные настройки: включен кеш или нет, какой драйвер, таймаут. Логин/пароль к бд
2) Ставлю модуль "галерея", у него какие-то свои настройки (куда сохранять картинки, как ресайзить, роуты)
3) Регистрируюсь на форуме. Хочу что бы формат даты был бы такой-то, сообщения сортировались по такому-то полю, подписи не показывались бы.
Мое мнение:
1,2) Хранятся в виде yaml/phpArray/JSON/xml.
#оригинальные файлы с настройками (эталонные, резервные). Никто не имеет права их редактировать
/config/ # основные
/code/modules/forum/config/ # настройки модуля форум
# "перегруженные" настройки. При загрузке приложение сначала пытается их взять, а если их нет - берет эталонные
/home/database.yaml
/home/modules/forum.json
3) Хранятся в базе. Есть какой-то объект, отвечающий за пользователя, его данные. Настройки по сути тоже самое.
Немного сложнее с роутерами. Вот я поставил форум, а ему нужно экспортировать правила роутинга. + Я хочу через вебморду иметь возможность изменить эти правила… И ессно роуты форума не должны перекрывать роуты блога. Как это отследить?