Универсальный импорт-экспорт XML в ORM

Рейтинг: 13.1395  
На голосовании
Предложил Пользователь 25773 16.02.2013 11:48:38

Универсальный импорт-экспорт XML в ORM

Рыжиков на конференции обещал, что вот-вот начнется обсуждение D7. Предлагайте свои идеи и. т. .п.

Итак, я хочу универсальный импорт-экспорт в ORM. Хочу, чтобы это заложили на уровне ядра.

Разрабатывая сайт на локальной машине постоянно хочется какие-то данные из локальной базы данных перенести на боевой сервер.

Создал свойство инфоблока - выгрузил на боевой сайт. Изменил опцию - выгрузил на боевой сайт.

В 1С есть интересный механизм:
там каждый объект (справочник, свойство, значение свойства)  имеет уникальный не повторяющийся GUID:  cbcf498f-55bc-11d9-848a-00112f43529a

Мы их видим, когда выгружается справочник товаров в инфоблок.

GUID представляет собой уникальную ссылку на объект.

GUID'ы в разных базах уникальные. Маловероятно, что где-то создаются одинаковые. Это их главное отличие от ID


Каждый объект умеет записываться в XML, каждый объект может быть записан и прочитан в любой 1С.

В 1С реализовано надежное взаимодействие разных информационных баз друг с другом: Бухгалтерии и Управлении торговлей.

Что надо сделать:
- таблица уникальных гуидов. Таблица заполняется автоматически, когда создается новый элемент или новая таблица
IDTABLE_NAMEELEMENT_IDGUIDID_FROM_ANOTHER_DATABASE
1b_option
1
cbcf498f-55bc-11d9-
848a-00112f43529a
2b_hiload_products
1
aabb4983-55bc-11d9-
848a-00112f43529a
0000123
- для каждого объекта базы данных возможность выгрузить в XML
Элемент = Сущность::GetByID();
$str = Элемент->ВыгрузитьВXML(  );


Или короче:

$str = GetXML(  $GUID );


- для каждого объекта базы данных возможность создать или изменить из XML.
Элемент = new КлассСущности;
Элемент->ЗаписатьИзXML( $str );


Или короче

$GUID = WriteXML( $str );

- маленькую форму "выгрузить объект по ссылке" :
в форме ввести cbcf498f-55bc-11d9-848a-00112f43529a и получить обект в XML. А еще лучше срaзу отправить на боевой сервер и там записать.

объект может быть простым (цена товара или опция)
или составным (товар с ценами или таблица опций)

Также можно будет выгружать и загружать товар, списки товаров, списки заказов, списки опций. Вcе у чего есть GUID.