Библиотека для работы с конфигурационными файлами в формате json, yaml
Данная библиотека позволяет работать с конфигурационными файлами с помощью предварительного описания требуемой конфигурации.
А так же без описания. Получение параметров по ключам вида Настройки.Глобальные.НастройкиПрокси.Сервер
.
Обеспечивает подстановку значение друг в друга и чтение вложенных файлов настроек
Сравнительная таблица
Библиотека от @Stepa86 ReadParams
Библиотека от @artbear Params
Configor | ReadParams | Params | |
---|---|---|---|
Чтение файлов в формате json | ✓ | ✓ | ✓ |
Чтение файлов в формате yaml/yml | ✓ | ||
Чтение файлов в произвольном формате (свой провайдер чтения) | ✓ | ||
Выполнение подстановок при чтении | ✓ | ✓ | ✓ |
Чтение переменных окружения | (через произвольный провайдер) | ✓ | ✓ |
Чтение параметров командной строки | (через произвольный провайдер) | ✓ | |
Запись параметров в прочитанный файл | (в разработке) | ||
Встроенный конструктор параметров | ✓ | ||
Выгрузка результата чтения в класс параметров | ✓ | ||
Поддержка деревовидных структур параметров Настройки.НастройкиПрокси.Пользователь и Настройки.НастройкиПрокси.Сервара.0.АдресСервера |
✓ | ||
Доступ к вложенным параметра (в том числе к элементам массива) в формате ДополнительныеХабы.0.Сервер, ДополнительныеХабы.1.Сервер |
✓ | ||
Авто приоритеты - настройки в коде, в файле, в окруж., ком.строке | ✓ (на уровне приоритетов провайдеров) | ✓ | |
Безопасный доступ к параметрам (возвращает значение по умолчанию или неопределенно) | ✓ | ✓ | ✓ |
// Пример файла настроек
//{
// 'Настройки': {
// "Глобальные": {
// "НастройкиПрокси":{
// "Сервер": "localhost",
// "Порт": "8080"
// }
// }
//
// }
//}
МенеджерПараметров = Новый МенеджерПараметров();
МенеджерПараметров.УстановитьФайлПараметров("Путь/К/Файлу");
МенеджерПараметров.Прочитать();
ПроксиСервер = МенеджерПараметров.Параметр("Настройки.Глобальные.НастройкиПрокси.Сервер")
Сообщить(ПроксиСервер);
Класс "ПараметрыПриложения"
Перем мПараметры;
Функция Параметры() Экспорт
Возврат мПараметры;
КонецФункции
Процедура УстановитьПараметры(Знач ВходящиеПараметры) Экспорт
мПараметры = ВходящиеПараметры;
КонецПроцедуры
Процедура ОписаниеПараметров(Знач Конструктор) Экспорт
НастройкиПрокси = Конструктор.НовыеПараметры("ПараметрСоответствиеСтруктуры")
.ПолеСтрока("Сервер")
.ПолеСтрока("Порт")
;
Настройки = Конструктор.НовыеПараметры("Настройки")
.ПолеОбъект("НастройкиПрокси", НастройкиПрокси)
;
Конструктор.ПолеСтрока("Версия version")
.ПолеОбъект("Настройки settings", Настройки)
;
КонецПроцедуры
МенеджерПараметров = Новы йМенеджерПараметров()
МенеджерПараметров.КонструкторПараметров(ПараметрыПриложения);
МенеджерПараметров.Прочитать();
ПроксиСервер = МенеджерПараметров.Параметр("Настройки.НастройкиПрокси.Сервер")
ПроксиСерверИзПараметровПриложения = ПараметрыПриложения.Параметры().Настройки.НастройкиПрокси.Сервер;
Сообщить(ПроксиСерверИзПараметровПриложения);
Так же описание функциональности содержится в папке tests
. В прилагающихся *.os
можно подсмотреть больше примеров из тестов.
Для установки необходимо:
opm install -f <ПутьКФайлу>
или установить с хаба пакетов
opm install configor
Документация в разработке
Документация публичного интерфейса
Доработка проводится по git-flow. Жду ваших PR.
Смотри файл LICENSE
.