public function onPostSerialize(ObjectEvent $event) { $analytics = $event->getObject(); if (!$analytics instanceof Analytics) { return; } if ($analytics->isAllDomains()) { $metadata = new PropertyMetadata($event->getType()['name'], 'domains'); $value = new \stdClass(); $value->domains = true; $event->getVisitor()->visitProperty($metadata, $value, $event->getContext()); } }
public function onPostSerialize(ObjectEvent $event) { return; $object = $event->getObject(); $type = $event->getType(); try { $meta = $this->entityManager->getClassMetadata($type['name']); } catch (\Exception $e) { return; } if ($meta) { $visitor = $event->getVisitor(); /* @var $visitor \JMS\Serializer\JsonSerializationVisitor */ $visitor->addData('$type', strtr($type['name'], '\\', '.')); foreach ($meta->associationMappings as $associationMapping) { $isScalar = in_array((int) $associationMapping['type'], array(ClassMetadata::ONE_TO_ONE, ClassMetadata::MANY_TO_ONE)); $isOwningSide = isset($associationMapping['isOwningSide']) ? $associationMapping['isOwningSide'] : false; if (!($isScalar && $isOwningSide)) { continue; } try { $refl = new \ReflectionObject($object); $prop = $refl->getProperty($associationMapping['fieldName']); $prop->setAccessible(true); $association = $prop->getValue($object); if ($association) { $id = $association->getId(); $foreignKey = $associationMapping['fieldName'] . 'Id'; try { $visitor->addData($foreignKey, $id); } catch (InvalidArgumentException $e) { } } } catch (\ReflectionException $e) { // continue; } } } }