function SerializerDataCollector::lateCollect
Overrides LateDataCollectorInterface::lateCollect
File
-
vendor/
symfony/ serializer/ DataCollector/ SerializerDataCollector.php, line 177
Class
- SerializerDataCollector
- @author Mathias Arlaud <mathias.arlaud@gmail.com>
Namespace
Symfony\Component\Serializer\DataCollectorCode
public function lateCollect() : void {
$this->data = self::DATA_TEMPLATE;
foreach ($this->collected as $collected) {
if (!isset($collected['data'])) {
continue;
}
$data = [
'data' => $this->cloneVar($collected['data']),
'dataType' => get_debug_type($collected['data']),
'type' => $collected['type'] ?? null,
'format' => $collected['format'],
'time' => $collected['time'],
'context' => $this->cloneVar($collected['context']),
'normalization' => [],
'encoding' => [],
'caller' => $collected['caller'] ?? null,
'name' => $collected['name'],
];
if (isset($collected['normalization'])) {
$mainNormalization = array_pop($collected['normalization']);
$data['normalizer'] = [
'time' => $mainNormalization['time'],
] + $this->getMethodLocation($mainNormalization['normalizer'], $mainNormalization['method']);
foreach ($collected['normalization'] as $normalization) {
if (!isset($data['normalization'][$normalization['normalizer']])) {
$data['normalization'][$normalization['normalizer']] = [
'time' => 0,
'calls' => 0,
] + $this->getMethodLocation($normalization['normalizer'], $normalization['method']);
}
++$data['normalization'][$normalization['normalizer']]['calls'];
$data['normalization'][$normalization['normalizer']]['time'] += $normalization['time'];
}
}
if (isset($collected['encoding'])) {
$mainEncoding = array_pop($collected['encoding']);
$data['encoder'] = [
'time' => $mainEncoding['time'],
] + $this->getMethodLocation($mainEncoding['encoder'], $mainEncoding['method']);
foreach ($collected['encoding'] as $encoding) {
if (!isset($data['encoding'][$encoding['encoder']])) {
$data['encoding'][$encoding['encoder']] = [
'time' => 0,
'calls' => 0,
] + $this->getMethodLocation($encoding['encoder'], $encoding['method']);
}
++$data['encoding'][$encoding['encoder']]['calls'];
$data['encoding'][$encoding['encoder']]['time'] += $encoding['time'];
}
}
$this->data[$collected['method']][] = $data;
}
}