После нескольких лет разработки на PHP я видел и слышал различные способы хранения «данных глобальной области видимости» (глобальные переменные, константы, файлы ini / XML / YML, базы данных, одноэлементные свойства ...).
Под "глобальными данными области" я подразумеваю:
- Глобальные настройки приложения / проекта, такие как
- Конфигурация базы данных
- SMTP, параметры FTP
- Идентификаторы базы данных (например, значения первичного ключа для определенных языков или стран, определенных в БД)
- Глобальные настройки времени выполнения, такие как
- Включить ведение журнала / отладку
- Среда разработки / тестирования / производства
- и т.д.
... которые не должны изменяться после получения и должны быть легко доступны в любой части кода проекта.
Некоторые глобальные данные, возможно, должны храниться как ассоциативный массив (поэтому не могут быть объявлены как константы).
Например: форматы даты для каждого языка. Кстати, я видел этот другой SO вопрос о константах массива, но разве нет ничего более читабельного, чем использование unserialize
везде, где необходимо постоянное значение массива?
Мой главный вопрос: каким образом вы бы порекомендовали хранить правильно (я имею в виду чистые, читаемые, надежные) данные глобального объема и почему (плюсы / минусы)?
Спасибо.