[HttpKernel] fix nested calls to serialize when using DataCollector

This commit is contained in:
Nicolas Grekas 2019-01-29 11:03:44 +01:00
parent b4357d734b
commit 3cfb558f03
1 changed files with 5 additions and 2 deletions

View File

@ -42,12 +42,15 @@ abstract class DataCollector implements DataCollectorInterface, \Serializable
public function serialize()
{
return serialize($this->data);
$trace = debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT, 2);
$isCalledFromOverridingMethod = isset($trace[1]['function'], $trace[1]['object']) && 'serialize' === $trace[1]['function'] && $this === $trace[1]['object'];
return $isCalledFromOverridingMethod ? $this->data : serialize($this->data);
}
public function unserialize($data)
{
$this->data = unserialize($data);
$this->data = \is_array($data) ? $data : unserialize($data);
}
/**