name: TraceableSerializer class_comment: '# * Collects some data about serialization. # * # * @author Mathias Arlaud # * # * @internal' dependencies: - name: SerializerDataCollector type: class source: Symfony\Component\Serializer\DataCollector\SerializerDataCollector - name: DecoderInterface type: class source: Symfony\Component\Serializer\Encoder\DecoderInterface - name: EncoderInterface type: class source: Symfony\Component\Serializer\Encoder\EncoderInterface - name: DenormalizerInterface type: class source: Symfony\Component\Serializer\Normalizer\DenormalizerInterface - name: NormalizerInterface type: class source: Symfony\Component\Serializer\Normalizer\NormalizerInterface - name: SerializerInterface type: class source: Symfony\Component\Serializer\SerializerInterface properties: [] methods: - name: __call visibility: public parameters: - name: method - name: arguments comment: "# * Collects some data about serialization.\n# *\n# * @author Mathias\ \ Arlaud \n# *\n# * @internal\n# */\n# class TraceableSerializer\ \ implements SerializerInterface, NormalizerInterface, DenormalizerInterface,\ \ EncoderInterface, DecoderInterface\n# {\n# public const DEBUG_TRACE_ID = 'debug_trace_id';\n\ # \n# public function __construct(\n# private SerializerInterface&NormalizerInterface&DenormalizerInterface&EncoderInterface&DecoderInterface\ \ $serializer,\n# private SerializerDataCollector $dataCollector,\n# ) {\n# }\n\ # \n# public function serialize(mixed $data, string $format, array $context =\ \ []): string\n# {\n# $context[self::DEBUG_TRACE_ID] = $traceId = bin2hex(random_bytes(4));\n\ # \n# $startTime = microtime(true);\n# $result = $this->serializer->serialize($data,\ \ $format, $context);\n# $time = microtime(true) - $startTime;\n# \n# $caller\ \ = $this->getCaller(__FUNCTION__, SerializerInterface::class);\n# \n# $this->dataCollector->collectSerialize($traceId,\ \ $data, $format, $context, $time, $caller);\n# \n# return $result;\n# }\n# \n\ # public function deserialize(mixed $data, string $type, string $format, array\ \ $context = []): mixed\n# {\n# $context[self::DEBUG_TRACE_ID] = $traceId = bin2hex(random_bytes(4));\n\ # \n# $startTime = microtime(true);\n# $result = $this->serializer->deserialize($data,\ \ $type, $format, $context);\n# $time = microtime(true) - $startTime;\n# \n# $caller\ \ = $this->getCaller(__FUNCTION__, SerializerInterface::class);\n# \n# $this->dataCollector->collectDeserialize($traceId,\ \ $data, $type, $format, $context, $time, $caller);\n# \n# return $result;\n#\ \ }\n# \n# public function normalize(mixed $object, ?string $format = null, array\ \ $context = []): array|string|int|float|bool|\\ArrayObject|null\n# {\n# $context[self::DEBUG_TRACE_ID]\ \ = $traceId = bin2hex(random_bytes(4));\n# \n# $startTime = microtime(true);\n\ # $result = $this->serializer->normalize($object, $format, $context);\n# $time\ \ = microtime(true) - $startTime;\n# \n# $caller = $this->getCaller(__FUNCTION__,\ \ NormalizerInterface::class);\n# \n# $this->dataCollector->collectNormalize($traceId,\ \ $object, $format, $context, $time, $caller);\n# \n# return $result;\n# }\n#\ \ \n# public function denormalize(mixed $data, string $type, ?string $format =\ \ null, array $context = []): mixed\n# {\n# $context[self::DEBUG_TRACE_ID] = $traceId\ \ = bin2hex(random_bytes(4));\n# \n# $startTime = microtime(true);\n# $result\ \ = $this->serializer->denormalize($data, $type, $format, $context);\n# $time\ \ = microtime(true) - $startTime;\n# \n# $caller = $this->getCaller(__FUNCTION__,\ \ DenormalizerInterface::class);\n# \n# $this->dataCollector->collectDenormalize($traceId,\ \ $data, $type, $format, $context, $time, $caller);\n# \n# return $result;\n#\ \ }\n# \n# public function encode(mixed $data, string $format, array $context\ \ = []): string\n# {\n# $context[self::DEBUG_TRACE_ID] = $traceId = bin2hex(random_bytes(4));\n\ # \n# $startTime = microtime(true);\n# $result = $this->serializer->encode($data,\ \ $format, $context);\n# $time = microtime(true) - $startTime;\n# \n# $caller\ \ = $this->getCaller(__FUNCTION__, EncoderInterface::class);\n# \n# $this->dataCollector->collectEncode($traceId,\ \ $data, $format, $context, $time, $caller);\n# \n# return $result;\n# }\n# \n\ # public function decode(string $data, string $format, array $context = []): mixed\n\ # {\n# $context[self::DEBUG_TRACE_ID] = $traceId = bin2hex(random_bytes(4));\n\ # \n# $startTime = microtime(true);\n# $result = $this->serializer->decode($data,\ \ $format, $context);\n# $time = microtime(true) - $startTime;\n# \n# $caller\ \ = $this->getCaller(__FUNCTION__, DecoderInterface::class);\n# \n# $this->dataCollector->collectDecode($traceId,\ \ $data, $format, $context, $time, $caller);\n# \n# return $result;\n# }\n# \n\ # public function getSupportedTypes(?string $format): array\n# {\n# return $this->serializer->getSupportedTypes($format);\n\ # }\n# \n# public function supportsNormalization(mixed $data, ?string $format\ \ = null, array $context = []): bool\n# {\n# return $this->serializer->supportsNormalization($data,\ \ $format, $context);\n# }\n# \n# public function supportsDenormalization(mixed\ \ $data, string $type, ?string $format = null, array $context = []): bool\n# {\n\ # return $this->serializer->supportsDenormalization($data, $type, $format, $context);\n\ # }\n# \n# public function supportsEncoding(string $format, array $context = []):\ \ bool\n# {\n# return $this->serializer->supportsEncoding($format, $context);\n\ # }\n# \n# public function supportsDecoding(string $format, array $context = []):\ \ bool\n# {\n# return $this->serializer->supportsDecoding($format, $context);\n\ # }\n# \n# /**\n# * Proxies all method calls to the original serializer." - name: getCaller visibility: private parameters: - name: method - name: interface comment: null traits: - Symfony\Component\Serializer\DataCollector\SerializerDataCollector - Symfony\Component\Serializer\Encoder\DecoderInterface - Symfony\Component\Serializer\Encoder\EncoderInterface - Symfony\Component\Serializer\Normalizer\DenormalizerInterface - Symfony\Component\Serializer\Normalizer\NormalizerInterface - Symfony\Component\Serializer\SerializerInterface interfaces: - SerializerInterface