/**
  * @param SerializeEvent $event
  */
 public function inject(SerializeEvent $event)
 {
     $data =& $event->getData();
     if (!isset($data['__type'])) {
         return;
     }
     $event->setSubject($data['__type']);
 }
Ejemplo n.º 2
0
 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));
 }