По сути, мне нужен простой, легкий, однофайловый способ синтаксического анализа INI-файла с «расширенными» функциями, такими как наследование разделов и вложение свойств, например Zend_Config_Ini.
Например:
[foo]
a = 1
b.a = 2
b.b = 3
b.c = 4
c = 5
[bar : foo]
b.b = 17
c = 42
Разобрал бы в
array(
'foo'=>array(
'a'=>'1',
'b'=>array(
'a'=>'2',
'b'=>'3',
'c'=>'4'
),
'c'=>'5'
),
'bar'=>array(
'a'=>'1',
'b'=>array(
'a'=>'2',
'b'=>'17',
'c'=>'4'
),
'c'=>'42'
)
)
Встроенный PHP parse_ini_file
не обрабатывает ничего, кроме простых INI с простыми разделами и простыми ключами.
Моя проблема с использованием Zend_Config_Ini
заключается в том, что мне пришлось бы включать практически весь подпакет Zend_Config, и он очень раздут и настраивается.
Есть ли маленькая и простая библиотека для анализа?
Если нет, есть ли простая реализация. не видите?
Под маленьким и простым я подразумеваю что-то вроде sfYaml файлов INI.
На мой (очень неопытный) взгляд, мне пришлось бы один раз проанализировать с помощью parse_ini_file
, затем вернуться и разрешить наследование, затем пройти через каждый раздел и рекурсивно развернуть ключи ...
ОБНОВЛЕНИЕ. Поскольку это популярный вопрос, я хотел бы отметить, что у меня есть простой класс, реализующий это на GitHub, не стесняйтесь отправлять запросы на перенос, проблемы и т. д.