Где хранить конфиг для подключения?

192
10 марта 2018, 20:23

Разрабатываю приложение на laravel 5 целью которого является публикация постов в различных социальных сетях. Предполагается что социальных сетей будет много и для каждой из них используется свой конфиг для подключения, типа "access_token", "user_id" и т.д. Дело в том что поля будут абсолютно разные исходя из типа социальной сети.

Вопрос: Где и как лучше хранить такой конфиг для подключения?

Если в голове 3 варианта решения.

  1. Хранить данные о подключении в .env файле (это не самый лучший вариант, потому что заносить данные придется вручную)

  2. Хранить данные в бд, в таблице текущей социальной сети (не лучший вариант, потому что поля в таблице будут существенно разные и плодить пустые колонки не охото.)

  3. При создании ресурса социальной сети создавать отдельную папку в файловой системе и в ней хранить config для подключения.

Answer 1

Выбор того или иного способа для хранения настроек зависит от архитектуры вашего приложения и логики его работы:

  • Если архитектура построена так, что при добавлении новой соцсети вам нет необходимости писать новый код, а настройки доступа унифицированы (например, поле access_token), то тогда есть смысл хранить такие сущности в бд и управлять ими через админку. (Создание/чтение/изменение/удаление). Учитывая, что соцсети достаточно сильно различаются между собой в механизме доступа к ним и обмене данными, мала вероятность что вам не потребуется писать код при подключении новой соцсети.

  • Если при добавлении новой соцсети потребуется реализовать некий код (что наиболее вероятно), то имеет смысл выносить настройки в конфигурационные файлы Laravel. Если конфигурация отличается в разных средах (dev или production), имеет смысл использовать .env файл и соответствующую функцию env() внутри конфигурационных файлов. Также имеет место реализация каждой отдельной соцсети в виде отдельного модуля Laravel, имеющего свой собственный конфигурационный файл в рамках модуля.

READ ALSO
Вывод под категорий товаров на странице категории

Вывод под категорий товаров на странице категории

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

189
сессии, куки файлы, header

сессии, куки файлы, header

Нужно чтобы каждого нового пользователя, который только зарегистрировался встречала строка: Здравствуйте <имя>Пытаюсь получить имя через...

175
yii2 &ldquo;подробные&rdquo; ссылки

yii2 “подробные” ссылки

Я нет так давно работаю с urlManagerом и мне нужно сделать "подробную" ссылку, в общем мне нужно чтобы финальная ссылка выглядела вот так и как я предполагаю...

179
Несовпадение типов в таблице MySQL

Несовпадение типов в таблице MySQL

Браузер выдает ошибку несоответствия переменных в этой строке:

188