Я хочу десериализовать XML-файл в объект с помощью JMS Serializer. Это работает очень хорошо для прямых свойств. Но когда дело доходит до вложенных свойств, я не могу заставить их работать без создания связанных сущностей. Например :
<idt>
<rcs>XXXXXXX</rcs>
<name>NAME</name>
<main>
<adr_1>
<type>YYYYY</type>
<street>YYYYYYY</street>
<zip>XXXXX</zip>
</adr_1>
</main>
</idt>
Мне нужно создать сущность Idt
, и десериализация будет работать нормально для rcs
и name
, но для main
мне нужно создать сущность Main
с отношением OneToOne
, которое содержит сущность Adr1
, содержащую свойства type
, street
и zip
. Это довольно тяжело. Есть ли способ сообщить сериализатору путь к гидратации свойства? Что-то вроде:
class XmlRawExecutive
{
/**
* @var integer
*
* @ORM\Column(name="rcs", type="string", length=3, nullable=false)
* @JMS\Type("string")
*/
private $rcs;
/**
* @var integer
*
* @ORM\Column(name="main_adr1_street", type="integer", nullable=false)
* @JMS\Type("string")
*/
private $mainAdr1Street;
Таким образом, я могу гидратировать уникальный объект из XML.