Skip to content

Commit 29874bc

Browse files
Merge branch '3.4' into 4.1
* 3.4: [HttpKernel] fix nested calls to serialize when using DataCollector
2 parents 1004072 + de76e4c commit 29874bc

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

DataCollector/DataCollector.php

+5-2
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,15 @@ abstract class DataCollector implements DataCollectorInterface, \Serializable
3636

3737
public function serialize()
3838
{
39-
return serialize($this->data);
39+
$trace = debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT, 2);
40+
$isCalledFromOverridingMethod = isset($trace[1]['function'], $trace[1]['object']) && 'serialize' === $trace[1]['function'] && $this === $trace[1]['object'];
41+
42+
return $isCalledFromOverridingMethod ? $this->data : serialize($this->data);
4043
}
4144

4245
public function unserialize($data)
4346
{
44-
$this->data = unserialize($data);
47+
$this->data = \is_array($data) ? $data : unserialize($data);
4548
}
4649

4750
/**

0 commit comments

Comments
 (0)