/** * @param SerializeEvent $event */ public function inject(SerializeEvent $event) { $data =& $event->getData(); if (!isset($data['__type'])) { return; } $event->setSubject($data['__type']); }
public function construct(SerializeEvent $event) { $subject = $event->getSubject(); $data =& $event->getData(); if (!class_exists($subject)) { throw new InvalidArgumentException(sprintf('$subject is expected to be an existing class, %s given', $subject)); } $constructor = $this->serializers->locate($subject); if (!$constructor instanceof ConstructorInterface) { return; } $event->setSubject($constructor->construct($subject, $data)); }