/** * {@inheritdoc} */ public function serializeEmbedded(array $embeds, JsonSerializationVisitor $visitor, SerializationContext $context) { $serializedEmbeds = array(); foreach ($embeds as $embed) { $serializedEmbeds[$embed->getRel()] = $context->accept($embed->getData()); } $visitor->addData('_embedded', $serializedEmbeds); }
/** * {@inheritdoc} */ public function serializeEmbeddeds(array $embeddeds, JsonSerializationVisitor $visitor, SerializationContext $context) { $serializedEmbeddeds = array(); $multiple = array(); foreach ($embeddeds as $embedded) { if (!isset($serializedEmbeddeds[$embedded->getRel()])) { $serializedEmbeddeds[$embedded->getRel()] = $context->accept($embedded->getData()); } elseif (!isset($multiple[$embedded->getRel()])) { $multiple[$embedded->getRel()] = true; $serializedEmbeddeds[$embedded->getRel()] = array($serializedEmbeddeds[$embedded->getRel()], $context->accept($embedded->getData())); } else { $serializedEmbeddeds[$embedded->getRel()][] = $context->accept($embedded->getData()); } } $visitor->addData('_embedded', $serializedEmbeddeds); }
/** * Extract custom-url and add them to serialization. * * @param Webspace $webspace * @param Context $context * @param JsonSerializationVisitor $visitor */ private function appendCustomUrls(Webspace $webspace, Context $context, JsonSerializationVisitor $visitor) { $customUrls = []; foreach ($webspace->getPortals() as $portal) { $customUrls = array_merge($customUrls, $this->getCustomUrlsForEnvironment($portal, $portal->getEnvironment($this->environment), $context)); } $customUrls = $context->accept($customUrls); $visitor->addData('customUrls', $customUrls); }