Рыжиков на конференции обещал, что вот-вот начнется обсуждение D7. Предлагайте свои идеи и. т. .п.
Итак, я хочу универсальный импорт-экспорт в ORM. Хочу, чтобы это заложили на уровне ядра.
Разрабатывая сайт на локальной машине постоянно хочется какие-то данные из локальной базы данных перенести на боевой сервер.
Создал свойство инфоблока - выгрузил на боевой сайт. Изменил опцию - выгрузил на боевой сайт.
В 1С есть интересный механизм:
там каждый объект (справочник, свойство, значение свойства) имеет уникальный не повторяющийся GUID: cbcf498f-55bc-11d9-848a-00112f43529a
Мы их видим, когда выгружается справочник товаров в инфоблок.
GUID представляет собой уникальную ссылку на объект.
GUID'ы в разных базах уникальные. Маловероятно, что где-то создаются одинаковые. Это их главное отличие от ID
Каждый объект умеет записываться в XML, каждый объект может быть записан и прочитан в любой 1С.
В 1С реализовано надежное взаимодействие разных информационных баз друг с другом: Бухгалтерии и Управлении торговлей.
Что надо сделать:
- таблица уникальных гуидов. Таблица заполняется автоматически, когда создается новый элемент или новая таблица
ID | TABLE_NAME | ELEMENT_ID | GUID | ID_FROM_ANOTHER_DATABASE |
1 | b_option | 1 | cbcf498f-55bc-11d9- 848a-00112f43529a | |
2 | b_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.