Горячая правка конфигурации

Рейтинг: 0Ответов: 1Опубликовано: 09.09.2014

Доброго времени суток. Допустим, у некоторого модуля есть конфигурация, описанная в php-файле, простым массивом (это важно, так как хранить конфиг в БД нельзя). Допустим так:

$config = [
    'debug' => false,
    'locale' => 'ru_RU.utf8',
    'timezone' => 'Europe/Moscow'
]

Необходимо реализовать изменения параметров конфигурации в панели управления на горячую. Имеется ввиду, что этот модуль в данный момент используется на сайте (допустим, сайт читает из файла конфигурации при каждом обновлении страницы), и необходимо внести какие-то изменения.
Можно ли реализовать такой механизм редактирования, не прерывая работу сайта?

Ответы

▲ 1

Если в файле хранятся только переменные, то (внимание, КОСТЫЛЬ!) можно прямо по ходу выполнения подключить его еще раз. Старые значения затрутся новыми.

Чуть менее костыльный способ - хранить настройки тоже в файле, но в чем-то типа json. Каждый раз, когда нам нужны данные из настроек, лезем в файл и обновляем инфу.

Этот способ улучшить можно, добавив хэш файла и читая только его: если он не совпадает с предыдущим, считывать настройки заново.