Задать вопрос
Quber
@Quber
PHP Team lead

Как правильно организовать хранение и чтение настроек сайта?

Собственно, разрабатываю сайт на php. Столкнулся с вечным вопросом хранения настроек сайта. Варианты, которые рассматривал: mysql база и ini файлы.

Но вот вопрос, если хранить настройки в базе, то когда происходит чтение из базы, мы совершаем запрос. А если надо прочитать 30 настроек, то будет +30 запросов, что при большой посещалке скажется на производительности.

Или стоит делать запрос в базу один и извлекать все необходимые данные сразу, а потом только их подставлять куда надо?
А если рассматривать ini файлы, то там тоже получается при каждом вызове настройки, необходимо каждый раз читать файл и каждый раз извлекать одно нужное нам поле. Или лучше читать весь файл сразу и извлекать из памяти необходимое? Тогда забивается память на мой взгляд.. как тогда быть? Как правильно организовать настройки и их чтение?

Прошу учитывать изначально хранение тысячу полей в настройках (как в cms это обычно бывает).
  • Вопрос задан
  • 9652 просмотра
Подписаться 6 Оценить Комментировать
Решение пользователя Alexander Kind К ответам на вопрос (5)
shineblu
@shineblu
Добрый день,

Предложу тогда и свой вариант. Храните настройки в сериализованом виде: как только сайт открывается, он проверяет наличие файла (например: settings.dat), если файл найден - читает его и делает unserialize - на выходе получается массив настроек. Если файла нет - делаете запрос в базу (как предлгал @VasiliyIsaichkin) и затем полученный массив настроек сохраняете в файл (например settings.dat) через serialize функцию + при каждом изменении настроек CMS - удаляйте файл settings.dat и он будет снова синхронизирован с БД.

Успехов!
Ответ написан