Где хранить общие настройки сайта? (Laravel)

243
06 февраля 2018, 10:07

Всем привет. Есть интернет-магазин на laravel. Сейчас появилась необходимость добавить общие переменные для сайта: телефон, состояние (работает/нет), адрес, e-mail и т.д.

Скажите, пожалуйста, как правильнее поступить? Думаю о:

  1. Создать отдельную таблицу в БД и хранить там все необходимые данные в виде ключ/значение.
  2. Создать отдельный .env файл и хранить данные там

Если делать таблицу в БД, то каждый запрос на сервер прибавит еще 1 запрос к БД, что не есть хорошо (даже при кэшированных данных). Как лучше поступить?

Answer 1

Хм. Ваш вопрос не имеет однозначного ответа и легко может быть закрыт как основаный на мнениях, а не на фактах".

Критериев нет, что лучше, а что хуже - и у одного решения число плюсов и минусов примерно равно числу плюсов и минусов.

Вы вот смотрите на количество запросов к БД, а я скажу, что я бы смотрел на то, сможет ли контент-менеджер самостоятельно поменять телефон или потребуется вызванивать программиста, который пять лет назад делал этот сайт. Кейс понятен? Лично вам подходит или речь напротив идёт о конторе, где всегда есть программист и вы готовы вместо того, чтобы заниматься программированием сидеть и править контент, теряя квалификацию?

Я бы сделал в базе и отдал эту вещь на откуп контент-редакторам, а сам бы код писал. Но всегда найдутся люди, кто решат, что им больше подходит другой вариант.

PS Статья в тему: http://laravel.su/articles/laravel-sleeping-owl-crud-for-dummers

Answer 2

Если делать таблицу в БД, то каждый запрос на сервер прибавит еще 1 запрос к БД, что не есть хорошо (даже при кэшированных данных). Как лучше поступить?

А что мешает в сервис провайдере получать сразу все настройки одним запросом и сохранять их например в статичном поле модели Setting?

READ ALSO
Возврат из PHP в AJAX

Возврат из PHP в AJAX

Отправляю сообщение на почтуСообщение отправляется и приходит, но в ajax не срабатывает success (нет уведомления об успешности) - бесконечно крутится...

248
$test->lol = “kek” VS $test['lol'] = “kek”; что лучше

$test->lol = “kek” VS $test['lol'] = “kek”; что лучше

задался интересным вопросом какую конструкцию лучше использовать strObj или переменную , в интернете ничего не нашел по этому поводу дельного

163
Вывод названий таблиц с помощью PHP

Вывод названий таблиц с помощью PHP

Имеется БД с неизвестным количеством таблиц

226
Собственный PHPMail в модальном окне на Wordpress

Собственный PHPMail в модальном окне на Wordpress

ЗдравствуйтеХотел бы сразу сказать, что популярные дополнения для WP с формами мне не подходят и поэтому ищу способ отправки собственных...

175