Проблема, которую я считаю, заключается в том, как написать код, который может легко узнать местоположение требуемого конфигурационного файла и, тем не менее, переносится без каких-либо изменений из среды в другую. Мы не хотим редактировать местоположение файла конфигурации, чтобы адаптировать код к каждой новой среде, скажем, каждый раз, когда мы перемещаем код из среды разработки в производство. Метод не должен полагаться на ресурсы, которые не являются общедоступными, такие как доступ к пользовательским переменным среды или доступ к определенному каталогу. Например, может показаться, что использование DOCUMENT_ROOT в качестве базового расположения для файла конфигурации - это путь, но это не универсально. Во-первых, в среде командной строки DOCUMENT_ROOT не имеет смысла. Во-вторых, программисту может быть предоставлен доступ только к подпапке только DOCUMENT_ROOT. Другое требование состоит в том, что файл конфигурации может зависеть от значений, известных во время выполнения, например, пользователя, который вызывает приложение, как в этом вопросе How to load a config file based on user selection from "unknown" location.Как организовать код, чтобы мы могли перемещать и обновлять его без необходимости редактировать местоположение конфигурационного файла?
Вопрос не в том, что наилучшее расположение файла конфигурации в определенных средах, например Location to put user configuration files in windows. Программистам все равно нужно было бы найти лучшее место, чтобы конечные пользователи могли легко найти файл конфигурации. Вопрос в том, как это местоположение, независимо от того, что оно есть, даже если оно зависит от значений, известных во время выполнения, может передаваться в код переносимым образом.