Symfony Normalizer и ArrayCollections

Я передаю ArrayCollection пользовательскому нормализатору Symfony:

$container = new ArrayCollection();
$container->set('root', $processor->getFile());

$container->get('root')->each(function($node) {
$container->set('node', $node);
$data = $this->serializer->normalize($container);
});

Коллекция содержит два указателя Symfony Crawler. Указатель на корневой объект и текущий указатель в цикле (текущий узел), поэтому я могу получать данные как от родителей, так и от текущего потомка.

Теперь, когда я var_dump() это по моему (сопряжено) supportsNormalization() Функция Я получаю 3 отдельных объекта:

  1. \ Doctrine \ Common \ Collections \ ArrayCollection
  2. \ Symfony \ Component \ DomCrawler \ Crawler
  3. \ DOMElement

Конечно, я просто хочу, чтобы объект, который я передал. Это какой-то пузырек?

Благодарю.

-1

Решение

Я фактически получаю все вложенные объекты.

Это особенность нормализатора Symfony … При передаче объектов в normalize() функция Symfony рекурсивно вызывает normalize() на всех вложенных объектах до supportsNormalization() находит совпадение.

https://github.com/symfony/serializer/blob/master/Normalizer/AbstractObjectNormalizer.php

-1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector