8000 [HttpKernel] Configure the ErrorHandler even when it is overriden · symfony/symfony@b292aa2 · GitHub
[go: up one dir, main page]

Skip to content

Commit b292aa2

Browse files
[HttpKernel] Configure the ErrorHandler even when it is overriden
1 parent 10f3b10 commit b292aa2

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

src/Symfony/Component/HttpKernel/EventListener/DebugHandlersListener.php

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
*/
3434
class DebugHandlersListener implements EventSubscriberInterface
3535
{
36+
private $earlyHandler;
3637
private $exceptionHandler;
3738
private $logger;
3839
private $levels;
@@ -53,6 +54,10 @@ class DebugHandlersListener implements EventSubscriberInterface
5354
*/
5455
public function __construct(callable $exceptionHandler = null, LoggerInterface $logger = null, $levels = \E_ALL, ?int $throwAt = \E_ALL, bool $scream = true, $fileLinkFormat = null, bool $scope = true)
5556
{
57+
$handler = set_exception_handler('var_dump');
58+
$this->earlyHandler = \is_array($handler) ? $handler[0] : null;
59+
restore_exception_handler();
60+
5661
$this->exceptionHandler = $exceptionHandler;
5762
$this->logger = $logger;
5863
$this->levels = null === $levels ? \E_ALL : $levels;
@@ -73,12 +78,26 @@ public function configure(Event $event = null)
7378
if (!$event instanceof KernelEvent ? !$this->firstCall : !$event->isMasterRequest()) {
7479
return;
7580
}
76-
$this->firstCall = $this->hasTerminatedWithException = false;
7781

7882
$handler = set_exception_handler('var_dump');
7983
$handler = \is_array($handler) ? $handler[0] : null;
8084
restore_exception_handler();
8185

86+
if (!$handler instanceof ErrorHandler && !$handler instanceof LegacyErrorHandler) {
87+
$handler = $this->earlyHandler;
88+
}
89+
90+
if ($handler !== $this->earlyHandler) {
91+
set_exception_handler('var_dump');
92+
try {
93+
$this->configure($event);
94+
} finally {
95+
restore_exception_handler();
96+
}
97+
}
98+
99+
$this->firstCall = $this->hasTerminatedWithException = false;
100+
82101
if ($this->logger || null !== $this->throwAt) {
83102
if ($handler instanceof ErrorHandler || $handler instanceof LegacyErrorHandler) {
84103
if ($this->logger) {

0 commit comments

Comments
 (0)
0