У меня есть следующий XML:
<CinemaListExport>
<Cinema>
....
<screens>
<screen></screen>
<screen></screen>
</screens>
</Cinema>
<Cinema>
....
</Cinema>
<CinemaListExport>
Я пытаюсь преобразовать это в следующие объекты:
class CinemaList
{
/**
* @var Cinema[]
*/
public $cinema;
public function __construct()
{
$this->cinema = new ArrayCollection();
}
public function addCinema(Cinema $cinema)
{
$this->cinema[] = $cinema;
}
class Cinema
{
fields...
/**
* @var Screen[]
*/
public $screens = [];
со следующим кодом:
$normalizers = [
new ArrayDenormalizer(),
new ObjectNormalizer(null, null, null, new ReflectionExtractor())
];
$encoders = [new XmlEncoder()];
$serializer = new Serializer($normalizers, $encoders);
$res = $serializer->deserialize($xml, CinemaList::class, 'xml');
Независимо от того, что я делаю, я всегда получаю следующее:
class CinemaList#265 (1) {
public $cinema =>
class Doctrine\Common\Collections\ArrayCollection#317 (1) {
private $elements =>
array(0) {
}
}
}
Может ли кто-нибудь указать мне правильное направление? Что я здесь не так делаю?
Мне просто нужно, чтобы CinemaList содержал все кинотеатры и каждый кинотеатр содержал все его экраны