Как правильно задавать конфигурационные переменные для приложения на PHP?
не используйте константы для конфигурации, лучше уж реализовать какой-то менеджер конфигураций, который можно заинджектить в любой компонент приложения и работать с ним. Контанты это просто, но не гибко.
Более тру вэй, использовать штуки типа dependency injection container, например рекомендую PHP-DI. Скажем у вас по хорошему все должно быть разбито на компоненты, и вы просто указываете фабрики этих объектов, передавая все настройки в конструктор или в сеттеры. В этом случае компоненты будут знать только то, что нужно только им, а у вас будет одно центральное место для задания конфигурации всех компонентов.
Ну и меньше рутины с созданием инстансов компонентов, вы просто их запрашиваете в других компонентах. а контейнер вам его инициализирует и отдаст, или отдаст уже инициализированный ранее компонент.
По своему опыту:
----
"универсальные" настройки пишу так:define('DIRSEP', DIRECTORY_SEPARATOR);
"уникальные" настройки (те что уникальны для конкретного сайта на одном движке) храню в JSON с последующим преобразованием в массив.