Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Serializer.php

function Serializer::__construct

Same name in this branch
  1. 11.1.x vendor/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php \phpDocumentor\Reflection\DocBlock\Serializer::__construct()
  2. 11.1.x core/modules/jsonapi/src/Serializer/Serializer.php \Drupal\jsonapi\Serializer\Serializer::__construct()
  3. 11.1.x core/modules/rest/src/Plugin/views/style/Serializer.php \Drupal\rest\Plugin\views\style\Serializer::__construct()

Parameters

array<NormalizerInterface|DenormalizerInterface> $normalizers:

array<EncoderInterface|DecoderInterface> $encoders:

2 calls to Serializer::__construct()
Serializer::__construct in core/modules/jsonapi/src/Serializer/Serializer.php
Serializer::__construct in core/modules/jsonapi/src/Serializer/Serializer.php
1 method overrides Serializer::__construct()
Serializer::__construct in core/modules/jsonapi/src/Serializer/Serializer.php

File

vendor/symfony/serializer/Serializer.php, line 79

Class

Serializer
Serializer serializes and deserializes data.

Namespace

Symfony\Component\Serializer

Code

public function __construct(array $normalizers = [], array $encoders = []) {
    foreach ($normalizers as $normalizer) {
        if ($normalizer instanceof SerializerAwareInterface) {
            $normalizer->setSerializer($this);
        }
        if ($normalizer instanceof DenormalizerAwareInterface) {
            $normalizer->setDenormalizer($this);
        }
        if ($normalizer instanceof NormalizerAwareInterface) {
            $normalizer->setNormalizer($this);
        }
        if (!($normalizer instanceof NormalizerInterface || $normalizer instanceof DenormalizerInterface)) {
            throw new InvalidArgumentException(\sprintf('The class "%s" neither implements "%s" nor "%s".', get_debug_type($normalizer), NormalizerInterface::class, DenormalizerInterface::class));
        }
    }
    $decoders = [];
    $realEncoders = [];
    foreach ($encoders as $encoder) {
        if ($encoder instanceof SerializerAwareInterface) {
            $encoder->setSerializer($this);
        }
        if ($encoder instanceof DecoderInterface) {
            $decoders[] = $encoder;
        }
        if ($encoder instanceof EncoderInterface) {
            $realEncoders[] = $encoder;
        }
        if (!($encoder instanceof EncoderInterface || $encoder instanceof DecoderInterface)) {
            throw new InvalidArgumentException(\sprintf('The class "%s" neither implements "%s" nor "%s".', get_debug_type($encoder), EncoderInterface::class, DecoderInterface::class));
        }
    }
    $this->encoder = new ChainEncoder($realEncoders);
    $this->decoder = new ChainDecoder($decoders);
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal