Ну, это зависит от структуры вашего приложения. Если при заданной загрузке страницы вам действительно понадобится одна или две из нескольких сотен переменных, тогда тестирование производительности может показать, что запрос к базе данных может быть быстрее, чем включение массивного файла конфигурации. Тем не менее, вам нужно быть осторожным, чтобы не перегружать базу данных слишком большим количеством запросов каждый раз, когда пользователь хочет что-то сделать. Кэширование может сократить накладные расходы, добавленные избыточными запросами, но это степень его использования.
Если эти переменные в основном представляют собой короткие строки или логические флаги, я думаю, что ваш ответ будет во многом зависеть от того, что вы сможете поддерживать хорошо. Хорошо структурированный файл .ini будет проще поддерживать, чем большая база данных, если эти переменные редко изменяются и всегда меняются вручную. Если эти переменные постоянно меняются и никогда не изменяются вручную, возможно, будет разумнее просто загрузить все переменные в базу данных.
Лично я оказался в обеих ситуациях и соответственно использовал оба метода. Если вы действительно нерешительны, вы всегда можете просто сделать несколько тестов. Время загрузки страницы, которая извлекает информацию о конфигурации из базы данных, затем время загрузки страницы, используя файл .ini (или файл .php, полный define()
s).
(И, если говорить педантично, define()
создает константы в глобальной области, а не глобальные переменные.)