protected function registerCustomHandlers(SerializerBuilder $serializer, array $handlers)
 {
     foreach ($handlers as $handler) {
         $serializer->configureHandlers(function (HandlerRegistry $registry) use($handler) {
             $registry->registerSubscribingHandler(new $handler());
         });
     }
 }
 /**
  * @param array $config
  * @param bool  $debug
  *
  * @return Serializer
  */
 protected function createSerializer(array $config, $debug)
 {
     $builder = new SerializerBuilder();
     if (isset($config['cache_dir'])) {
         $builder->setCacheDir($config['cache_dir']);
     }
     if (isset($config['default_handlers'])) {
         $builder->addDefaultHandlers();
     }
     if (isset($config['handlers'])) {
         foreach ($config['handlers'] as $handler) {
             $builder->configureHandlers($handler);
         }
     }
     if (isset($config['event_listeners'])) {
         foreach ($config['event_listeners'] as $handler) {
             $builder->configureListeners($handler);
         }
     }
     $builder->addMetadataDirs(array_get($config, 'paths', [base_path('app')]));
     $builder->setDebug($debug);
     return $builder->build();
 }
Example #3
0
 public function testDoesNotAddDefaultHandlersWhenExplicitlyConfigured()
 {
     $this->assertSame($this->builder, $this->builder->configureHandlers(function (HandlerRegistry $registry) {
     }));
     $this->assertEquals('{}', $this->builder->build()->serialize(new \DateTime('2020-04-16'), 'json'));
 }
Example #4
0
 /**
  * Registers handlers for the xAPI models on a SerializerBuilder.
  *
  * @param SerializerBuilder $builder The SerializerBuilder
  */
 public static function registerXApiHandler(SerializerBuilder $builder)
 {
     $builder->configureHandlers(function (HandlerRegistryInterface $handlerRegistry) {
         $handlerRegistry->registerSubscribingHandler(new DocumentDataUnwrapper());
     });
 }
Example #5
0
 /**
  * @inheritdoc
  */
 protected function configureBuilder(SerializerBuilder $builder)
 {
     $builder->configureHandlers(function (HandlerRegistryInterface $registry) {
         $registry->registerSubscribingHandler(new VectorHandler());
     });
 }