Skip to content

Commit d73191e

Browse files
committed
clarify error handler restoring process
1 parent 6085bf1 commit d73191e

File tree

1 file changed

+31
-26
lines changed

1 file changed

+31
-26
lines changed

src/Symfony/Component/HttpKernel/CacheWarmer/CacheWarmerAggregate.php

+31-26
Original file line numberDiff line numberDiff line change
@@ -50,38 +50,43 @@ public function enableOnlyOptionalWarmers()
5050
*/
5151
public function warmUp($cacheDir)
5252
{
53+
$restoreErrorHandler = false;
54+
5355
if ($this->debug) {
5456
$collectedLogs = [];
55-
$previousHandler = \defined('PHPUNIT_COMPOSER_INSTALL');
56-
$previousHandler = $previousHandler ?: set_error_handler(function ($type, $message, $file, $line) use (&$collectedLogs, &$previousHandler) {
57-
if (E_USER_DEPRECATED !== $type && E_DEPRECATED !== $type) {
58-
return $previousHandler ? $previousHandler($type, $message, $file, $line) : false;
59-
}
6057

61-
if (isset($collectedLogs[$message])) {
62-
++$collectedLogs[$message]['count'];
58+
if (\defined('PHPUNIT_COMPOSER_INSTALL')) {
59+
$restoreErrorHandler = true;
60+
$previousHandler = set_error_handler(function ($type, $message, $file, $line) use (&$collectedLogs, &$previousHandler) {
61+
if (E_USER_DEPRECATED !== $type && E_DEPRECATED !== $type) {
62+
return $previousHandler ? $previousHandler($type, $message, $file, $line) : false;
63+
}
6364

64-
return;
65-
}
65+
if (isset($collectedLogs[$message])) {
66+
++$collectedLogs[$message]['count'];
6667

67-
$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 3);
68-
// Clean the trace by removing first frames added by the error handler itself.
69-
for ($i = 0; isset($backtrace[$i]); ++$i) {
70-
if (isset($backtrace[$i]['file'], $backtrace[$i]['line']) && $backtrace[$i]['line'] === $line && $backtrace[$i]['file'] === $file) {
71-
$backtrace = \array_slice($backtrace, 1 + $i);
72-
break;
68+
return;
69+
}
70+
71+
$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 3);
72+
// Clean the trace by removing first frames added by the error handler itself.
73+
for ($i = 0; isset($backtrace[$i]); ++$i) {
74+
if (isset($backtrace[$i]['file'], $backtrace[$i]['line']) && $backtrace[$i]['line'] === $line && $backtrace[$i]['file'] === $file) {
75+
$backtrace = \array_slice($backtrace, 1 + $i);
76+
break;
77+
}
7378
}
74-
}
7579

76-
$collectedLogs[$message] = [
77-
'type' => $type,
78-
'message' => $message,
79-
'file' => $file,
80-
'line' => $line,
81-
'trace' => $backtrace,
82-
'count' => 1,
83-
];
84-
});
80+
$collectedLogs[$message] = [
81+
'type' => $type,
82+
'message' => $message,
83+
'file' => $file,
84+
'line' => $line,
85+
'trace' => $backtrace,
86+
'count' => 1,
87+
];
88+
});
89+
}
8590
}
8691

8792
try {
@@ -96,7 +101,7 @@ public function warmUp($cacheDir)
96101
$warmer->warmUp($cacheDir);
97102
}
98103
} finally {
99-
if ($this->debug && true !== $previousHandler) {
104+
if ($this->debug && $restoreErrorHandler) {
100105
restore_error_handler();
101106

102107
if (file_exists($this->deprecationLogsFilepath)) {

0 commit comments

Comments
 (0)