/** * {@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(); } }
public function simpleListOfToXml(XmlSerializationVisitor $visitor, $object, array $type, Context $context) { $newType = array('name' => $type["params"][0]["name"], 'params' => array()); $ret = array(); foreach ($object as $v) { $ret[] = $context->accept($v, $newType)->data; } return $visitor->getDocument()->createTextNode(implode(" ", $ret)); }
public function addLinksToXMLSerialization(array $links, XmlSerializationVisitor $visitor) { foreach ($links as $link) { $entryNode = $visitor->getDocument()->createElement('link'); $visitor->getCurrentNode()->appendChild($entryNode); $entryNode->setAttribute('rel', $link->getRel()); $entryNode->setAttribute('href', $link->getHref()); $attributes = $link->getAttributes(); foreach ($attributes as $attributeName => $attributeValue) { $entryNode->setAttribute($attributeName, $attributeValue); } } }
/** * 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(); }
/** * @param XmlSerializationVisitor $visitor * @param type $entity * @param array $type * @param Context $context * * @return \DOMElement */ public function serializeToXml(XmlSerializationVisitor $visitor, $entity, array $type, Context $context) { $visitor->getCurrentNode()->appendChild($formNode = $visitor->getDocument()->createElement('id', $type['params']['id'])); return $formNode; }
private function createLinkNode(LinkMetadata $link, XmlSerializationVisitor $visitor, $object) { $language = new ExpressionLanguage(); $compiledParams = array(); foreach ($link->getParams() as $key => $expr) { $compiledParams[$key] = $language->evaluate($expr, array('object' => $object)); } $linkNode = $visitor->getDocument()->createElement('link'); $linkNode->setAttribute('id', $link->getName()); $linkNode->setAttribute('rel', $link->getEntity()); $linkNode->setAttribute('href', $this->router->generate($link->getRoute(), $compiledParams, true)); return $linkNode; }