Ejemplo n.º 1
0
 /**
  * {@inheritdoc}
  */
 public function serializeEmbeddeds(array $embeddeds, XmlSerializationVisitor $visitor, SerializationContext $context)
 {
     foreach ($embeddeds as $embedded) {
         if ($embedded->getData() instanceof \Traversable || is_array($embedded->getData())) {
             foreach ($embedded->getData() as $data) {
                 $entryNode = $visitor->getDocument()->createElement('resource');
                 $visitor->getCurrentNode()->appendChild($entryNode);
                 $visitor->setCurrentNode($entryNode);
                 $visitor->getCurrentNode()->setAttribute('rel', $embedded->getRel());
                 if (null !== ($node = $context->accept($data))) {
                     $visitor->getCurrentNode()->appendChild($node);
                 }
                 $visitor->revertCurrentNode();
             }
             continue;
         }
         $entryNode = $visitor->getDocument()->createElement('resource');
         $visitor->getCurrentNode()->appendChild($entryNode);
         $visitor->setCurrentNode($entryNode);
         $visitor->getCurrentNode()->setAttribute('rel', $embedded->getRel());
         if (null !== ($node = $context->accept($embedded->getData()))) {
             $visitor->getCurrentNode()->appendChild($node);
         }
         $visitor->revertCurrentNode();
     }
 }
Ejemplo n.º 2
0
 public function serializeFormToXml(XmlSerializationVisitor $visitor, Form $form, array $type)
 {
     if (null === $visitor->document) {
         $visitor->document = $visitor->createDocument(null, null, false);
         $visitor->document->appendChild($formNode = $visitor->document->createElement('form'));
         $visitor->setCurrentNode($formNode);
     } else {
         $visitor->getCurrentNode()->appendChild($formNode = $visitor->document->createElement('form'));
     }
     $formNode->setAttribute('name', $form->getName());
     $formNode->appendChild($errorsNode = $visitor->document->createElement('errors'));
     foreach ($form->getErrors() as $error) {
         $errorNode = $visitor->document->createElement('entry');
         $errorNode->appendChild($this->serializeFormErrorToXml($visitor, $error, array()));
         $errorsNode->appendChild($errorNode);
     }
     foreach ($form->all() as $child) {
         if ($child instanceof Form) {
             if (null !== ($node = $this->serializeFormToXml($visitor, $child, array()))) {
                 $formNode->appendChild($node);
             }
         }
     }
     return $formNode;
 }
 public function serializeToXML(XmlSerializationVisitor $visitor, FormView $formView, array $type, Context $context)
 {
     if (null === $visitor->document) {
         $visitor->document = $visitor->createDocument(null, null, false);
         $visitor->setCurrentNode($visitor->document->createElement('form'));
         $visitor->document->appendChild($visitor->getCurrentNode());
     }
     $this->xmlFormViewSerializer->serialize($formView, $visitor->getCurrentNode());
 }
 public function serializeViolationToXml(XmlSerializationVisitor $visitor, ConstraintViolation $violation, array $type = null)
 {
     if (null === $visitor->document) {
         $visitor->document = $visitor->createDocument(null, null, false);
         $visitor->document->appendChild($violationNode = $visitor->document->createElement('violation'));
         $visitor->setCurrentNode($violationNode);
     } else {
         $visitor->getCurrentNode()->appendChild($violationNode = $visitor->document->createElement('violation'));
     }
     $violationNode->setAttribute('property_path', $violation->getPropertyPath());
     $violationNode->appendChild($messageNode = $visitor->document->createElement('message'));
     $messageNode->appendChild($visitor->document->createCDATASection($violation->getMessage()));
 }
 /**
  * @param XmlSerializationVisitor $visitor
  * @param ExceptionWrapper        $wrapper
  * @param array                   $type
  * @param Context                 $context
  */
 public function serializeToXml(XmlSerializationVisitor $visitor, ExceptionWrapper $wrapper, array $type, Context $context)
 {
     $data = $this->convertToArray($wrapper);
     if (null === $visitor->document) {
         $visitor->document = $visitor->createDocument(null, null, true);
     }
     foreach ($data as $key => $value) {
         $entryNode = $visitor->document->createElement($key);
         $visitor->getCurrentNode()->appendChild($entryNode);
         $visitor->setCurrentNode($entryNode);
         $node = $context->getNavigator()->accept($value, null, $context);
         if (null !== $node) {
             $visitor->getCurrentNode()->appendChild($node);
         }
         $visitor->revertCurrentNode();
     }
 }
 /**
  * Normalize wrapper to serialize with xml
  * Event class name is added
  *
  * @param XmlSerializationVisitor $visitor
  * @param EventContainer          $container
  * @param array                   $type
  * @param Context                 $context
  */
 public function serializeContainerXml(XmlSerializationVisitor $visitor, EventContainer $container, array $type, Context $context)
 {
     if (!$visitor->getDocument()) {
         /** @var ClassMetadata $metadata */
         $metadata = $context->getMetadataFactory()->getMetadataForClass(__NAMESPACE__ . '\\EventContainer');
         $metadata->xmlRootName = 'event';
         $visitor->startVisitingObject($metadata, $container, [], $context);
         //            $visitor->visitArray([], ['name' => 'array'], $context);
     }
     $event = $container->getEvent();
     $node = $visitor->getCurrentNode();
     $node->setAttribute('type', $this->namingStrategy->classToType(get_class($event)));
     $data = $visitor->getDocument()->createElement('data');
     $visitor->getCurrentNode()->appendChild($data);
     $visitor->setCurrentNode($data);
     $visitor->getNavigator()->accept($event, null, $context);
     $visitor->revertCurrentNode();
 }