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