Задать вопрос
mannaro
@mannaro
Умею профессионально гуглить

Как вы храните настройки сайта?

Здравствуйте! Подскажите пожалуйста, как лучше хранить динамические настройки сайта (чтобы иметь доступ к ним из админки). В MySql? Это не очень удобно, ибо при переносе сайта приходится вручную создавать нужные записи и т.п.
В файле? Но, как мне известно, при чтении файла он блокируется. И чем больше файл (а также обращений к нему), тем дольше он будет открываться. Да и сохранение настроек при изменении выглядит немного.. муторно))
Как поступить?
  • Вопрос задан
  • 2460 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Ну вопервых если вы открываете файл просто на чтение - он не блокируется. Вы можете заблокировать его при помощи flock, но это стоит делать только для записи, что бы избежать возможного варианта, при котором два пользователя из админки производят изменения одновременно.

Но удобнее подобное хранить в базе. А для поддержания оной в актуальном состоянии можно воспользоваться миграциями. На них же можно сделать простенький скрипт для установки.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
GM2mars
@GM2mars
Открою секрет, mysql таблицы можно экспортировать, и что немаловажно - импортировать ). Секрет номер два, раскрыл @Fesor про файлы, и если файл даже заблокируется, операция записи займет такие ничтожные доли секунды (если конечно у вас настройки не сравнимы с "Войной и мир").

Обычно хранят в базе в отдельной таблице.
Я храню в файле, так как настроек у меня мало, считываются один раз при открытии сайта, а сайт одностраничный. И да, "настройки сайта" довольно расплывчивое понятие, они у каждого свои...
Ответ написан
Комментировать
@begemot_nn
Верхом же мастерства является способность хранить настройки подключения к базе тоже в базе... сложно понять, что вы понимаете под "динамическими настройками сайта", но как минимум один файл настроек у сайта быть должен ( с параметрами для подключения к базе) так что мешает в нем же и хранить все остальные настройки?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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