*/ final class StdClassHandler implements SubscribingHandlerInterface { /** * {@inheritdoc} */ public static function getSubscribingMethods() { $methods = []; $formats = ['json', 'xml', 'yml']; foreach ($formats as $format) { $methods[] = [ 'direction' => GraphNavigatorInterface::DIRECTION_SERIALIZATION, 'type' => 'stdClass', 'format' => $format, 'method' => 'serializeStdClass', ]; } return $methods; } /** * @return mixed */ public function serializeStdClass(SerializationVisitorInterface $visitor, \stdClass $stdClass, array $type, SerializationContext $context) { $classMetadata = $context->getMetadataFactory()->getMetadataForClass('stdClass'); $visitor->startVisitingObject($classMetadata, $stdClass, ['name' => 'stdClass'], $context); foreach ((array) $stdClass as $name => $value) { $metadata = new StaticPropertyMetadata('stdClass', $name, $value); $visitor->visitProperty($metadata, $value); } return $visitor->endVisitingObject($classMetadata, $stdClass, ['name' => 'stdClass'], $context); } }