Если я вас правильно понимаю, вы можете добавить новый экземпляр config
снова, если на следующем уровне есть несколько значений.
Конфигурация, подобная этой
value.second = a
value.third = b
other.value.my = a
other.value.foo = b
Будет тогдарезультат в дереве классов, как это (config
всегда является экземпляром класса, а намерение означает, что что-то находится в массиве атрибутов экземпляра config
выше; тексты до =>
являются индексными именами, с которыми вы будетедоступ к ним).
config
value => config
second => a
third => b
other => config
value => config
my => a
foo => b
Надеюсь, вы немного поймете, что я имею в виду.
Тогда вы сможете реализовать либо ArrayAccess , либо магические методы __get
и __set
для одного из следующих способов доступа к вашим значениям:
config->value->second
config->other->value->my
или
config['value']['second']
config['other']['value']['my']