/**
  * 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);
     }
 }
Esempio n. 2
0
 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();
 }
Esempio n. 3
0
 /**
  * @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);
     }
 }