class JsonSerializableNormalizer extends AbstractNormalizer
{ public function normalize(mixed
$object, string
$format = null, array
$context =
[]): array|string|int|float|bool|\ArrayObject|null
{ if ($this->
isCircularReference($object,
$context)) { return $this->
handleCircularReference($object,
$format,
$context);
} if (!
$object instanceof \JsonSerializable
) { throw new InvalidArgumentException(sprintf('The object must implement "%s".', \JsonSerializable::
class));
} if (!
$this->serializer instanceof NormalizerInterface
) { throw new LogicException('Cannot normalize object because injected serializer is not a normalizer.'
);
} return $this->serializer->
normalize($object->
jsonSerialize(),
$format,
$context);
}