8000 [HttpKernel] fix nested calls to serialize when using DataCollector · symfony/symfony@3cfb558 · GitHub
[go: up one dir, main page]

Skip to content

Commit 3cfb558

Browse files
[HttpKernel] fix nested calls to serialize when using DataCollector
1 parent b4357d7 commit 3cfb558

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/Symfony/Component/HttpKernel/DataCollector/DataCollector.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,15 @@ abstract class DataCollector implements DataCollectorInterface, \Serializable
4242

4343
public function serialize()
4444
{
45-
return serialize($this->data);
45+
$trace = debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT, 2);
46+
$isCalledFromOverridingMethod = isset($trace[1]['function'], $trace[1]['object']) && 'serialize' === $trace[1]['function'] && $this === $trace[1]['object'];
47+
48+
return $isCalledFromOverridingMethod ? $this->data : serialize($this->data);
4649
}
4750

4851
public function unserialize($data)
4952
{
50-
$this->data = unserialize($data);
53+
$this->data = \is_array($data) ? $data : unserialize($data);
5154
}
5255

5356
/**

0 commit comments

Comments
 (0)
0