/** * Override default serialization vistors * * @param Container $app * @param SerializerBuilder $serializerBuilder */ protected function setSerializationVisitors(Container $app, SerializerBuilder $serializerBuilder) { $serializerBuilder->addDefaultSerializationVisitors(); foreach ($app["serializer.serializationVisitors"] as $format => $visitor) { $serializerBuilder->setSerializationVisitor($format, $visitor); } }
public function configure(SerializerBuilder $builder) { return $builder->setSerializationVisitor('array', new ArraySerialize(new SerializedNameAnnotationStrategy(new CamelCaseNamingStrategy())))->setDeSerializationVisitor('array', new ArrayDeserialize(new SerializedNameAnnotationStrategy(new CamelCaseNamingStrategy())))->configureHandlers(function (HandlerRegistry $handlers) { $handlers->registerHandler('serialization', 'Rhumsaa\\Uuid\\Uuid', 'array', function ($visitor, Uuid $id, array $type) { return (string) $id; }); $handlers->registerHandler('deserialization', 'Rhumsaa\\Uuid\\Uuid', 'array', function ($visitor, $id, array $type) { return \Rhumsaa\Uuid\Uuid::fromString($id); }); $handlers->registerHandler('serialization', 'DateTime', 'array', function ($visitor, DateTime $date, array $type) { return $date->format(DateTime::ISO8601); }); $handlers->registerHandler('deserialization', 'DateTime', 'array', function ($visitor, $date, array $type) { return DateTime::createFromFormat(DateTime::ISO8601, $date); }); $handlers->registerSubscribingHandler(new Generic()); })->addDefaultHandlers()->addDefaultListeners(); }
/** * @expectedException JMS\Serializer\Exception\UnsupportedFormatException * @expectedExceptionMessage The format "xml" is not supported for serialization. */ public function testDoesNotAddOtherVisitorsWhenConfiguredExplicitly() { $this->assertSame($this->builder, $this->builder->setSerializationVisitor('json', new JsonSerializationVisitor(new CamelCaseNamingStrategy()))); $this->builder->build()->serialize('foo', 'xml'); }
/** * Override default serialization visitors * * @param Application $app * @param SerializerBuilder $serializerBuilder */ protected function setSerializationVisitors(Application $app, SerializerBuilder $serializerBuilder) { $serializerBuilder->addDefaultSerializationVisitors(); foreach ($app['serializer.serializationVisitors'] as $format => $visitor) { $serializerBuilder->setSerializationVisitor($format, $visitor); } }