Перейти к содержимому

Настройки проекта - файлы, опции модулей, окружения

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

Что общего у этих задач

Настройка не место в коде. Значение, вписанное в файл решения, одинаково на всех стендах и уезжает в репозиторий вместе с ключом от чужого сервиса.

Файл читается до базы, опция модуля - из базы. Есть и третье место: хранилище краткоживущего состояния. Его записи живут ограниченный срок и сами исчезают. Отсюда и разделение: подключение к базе живёт в файле, а всё настраиваемое сотрудником - в опциях.

Стенд и боевой сайт отличаются настройками, а не кодом. Как только это перестаёт быть так, выкладка начинает ронять то один сайт, то другой.

Решения подтемы

Частые вопросы

Где хранить ключ внешнего сервиса?

В опциях своего модуля или в файле вне репозитория. В коде решения ключу не место.

Чем опции модуля отличаются от файла настроек?

Опции лежат в базе и правятся из интерфейса. Файл читается раньше базы и переживает её недоступность.

Как задать разные значения на стенде и боевом?

Дополняющим файлом настроек, который не выкладывается. Основной файл при этом остаётся общим.

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

Сам файл да, пароли и ключи - нет. Их выносят в дополняющий файл каждого стенда.

Связанные темы

Первоисточники