Я работаю над рефакторингом кода части загрузки файла конфигурации в PHP. Раньше я использовал несколько файлов «ini», но теперь я планирую использовать один файл XML, который будет содержать все детали конфигурации проекта. Проблема в том, что если кому-то нужен файл конфигурации в ini или DB или что-то еще, а не файл по умолчанию (в данном случае XML), мой код должен обрабатывать эту часть.
Если кто-то хочет использовать другой вариант конфигурации, такой как ini, ему придется создать ini-файл, аналогичный моему XML-файлу конфигурации, и мой менеджер конфигурации должен позаботиться обо всем, например, об анализе, сохранении в кеше. Для этого мне нужен механизм, скажем, правильный интерфейс для моих данных конфигурации, где базовое хранилище данных может быть чем угодно (XML, DB, ini и т. д.), а также я не хочу, чтобы оно зависело от этого базового хранилища, и в любое время в будущем это должно быть расширяемым для других форматов файлов.