Конфигурация ядра: .settings.php
Конфигурация ядра D7 хранится в файле .settings.php (и переопределяющем .settings_extra.php), где секции настроек (соединения с БД, кеш, обработка исключений) с флагом readonly защищены от изменения кодом. При разделении сред через extra-файл важно учитывать, что секции переопределяются целиком, а не объединяются.
Прогресс хранится в этом браузере. Войдите, чтобы сохранить его в аккаунте.
Что нужно понимать
-
1
Файл .settings.php
-
2
Файл dbconn.php
-
3
Константы и настройки
Материалы
Официальная документация
-
Конфигурация БД Новая дока
Материалы BXMax
Проверь себя
На стенде положили .settings_extra.php с секцией connections только с паролем от базы, и сайт перестал подключаться к БД. Почему?
Configuration::loadConfiguration() не сливает секции глубоко, а заменяет их целиком: каждая секция из extra-файла перезаписывает одноимённую из .settings.php. В connections нужно указать все параметры, включая className, host, database и login.
Чем отличается readonly => true у секции от того, что файл просто не редактируют?
readonly запрещает менять секцию через API во время работы: Configuration::add() и setValue() такую секцию не перезапишут. Это защита от кода, который сохраняет настройки, а не от правок руками.
Зачем править dbconn.php, если весь код проекта на D7 и подключение описано в .settings.php?
dbconn.php читает старое ядро: там объявляются переменные $DBHost, $DBName и константы вроде DELAY_DB_CONNECT. Оба файла работают на одном хите, и расхождение между ними даёт ошибки в той части, которую вы не переписывали.
Сайт на проде показывает стек вызовов с путями к файлам. Какую секцию проверить?
exception_handling: параметр debug должен быть false, а ошибки — уходить в лог через log с settings.file и log_size. Секция обычно readonly => false, так что её мог изменить и код через Configuration.
Не сходится?
Спросите ассистента BXMax: он знает документацию и материалы сайта по этой теме.
Знаете материал лучше?
Предложите ссылку: после проверки она появится в этом разделе.
Войти, чтобы предложить