Transformer/ArrayMapTransformer.php
public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setRequired(
            [
                'transformers',
            ]
        );
        $resolver->setAllowedTypes('transformers', ['array']);
        $resolver->setDefaults([
            'skip_null' => false,
        ]);
        $resolver->setAllowedTypes('skip_null', ['boolean']);
        /** @noinspection PhpUnusedParameterInspection */
        $resolver->setNormalizer(
            'transformers',
            function (Options $options, $transformers) {
                /** @var array $transformers */
                foreach ($transformers as $transformerCode => &$transformerOptions) {
                    $transformerOptionsResolver = new OptionsResolver();
                    /** @noinspection ExceptionsAnnotatingAndHandlingInspection */// @todo remove me sometimes
                    $transformer = $this->transformerRegistry->getTransformer($transformerCode);
                    if ($transformer instanceof ConfigurableTransformerInterface) {
                        $transformer->configureOptions($transformerOptionsResolver);
                        $transformerOptions = $transformerOptionsResolver->resolve(
                            $transformerOptions ?? []
                        );
                    }
                }

                return $transformers;
            }
        );
    }
public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setRequired(
            [
                'transformers',
            ]
        );
        $resolver->setAllowedTypes('transformers', ['array']);
        $resolver->setDefaults([
            'skip_null' => false,
        ]);
        $resolver->setAllowedTypes('skip_null', ['boolean']);
        /** @noinspection PhpUnusedParameterInspection */
        $resolver->setNormalizer(
            'transformers',
            function (Options $options, $transformers) {
                /** @var array $transformers */
                foreach ($transformers as $transformerCode => &$transformerOptions) {
                    $transformerOptionsResolver = new OptionsResolver();
                    /** @noinspection ExceptionsAnnotatingAndHandlingInspection */// @todo remove me sometimes
                    $transformer = $this->transformerRegistry->getTransformer($transformerCode);
                    if ($transformer instanceof ConfigurableTransformerInterface) {
                        $transformer->configureOptions($transformerOptionsResolver);
                        $transformerOptions = $transformerOptionsResolver->resolve(
                            $transformerOptions ?? []
                        );
                    }
                }

                return $transformers;
            }
        );
    }
@param OptionsResolver $resolver

@throws \Symfony\Component\OptionsResolver\Exception\ExceptionInterface