Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 207b0b5

Browse filesBrowse files
bug #37526 [Cache][Config] ensure compatibility with PHP 8 stack traces (xabbuh)
This PR was merged into the 3.4 branch. Discussion ---------- [Cache][Config] ensure compatibility with PHP 8 stack traces | Q | A | ------------- | --- | Branch? | 3.4 | Bug fix? | yes | New feature? | no | Deprecations? | no | Tickets | | License | MIT | Doc PR | Commits ------- 8ba34da ensure compatibility with PHP 8 stack traces
2 parents 13982b5 + 8ba34da commit 207b0b5
Copy full SHA for 207b0b5

File tree

2 files changed

+20
-8
lines changed
Filter options

2 files changed

+20
-8
lines changed

‎src/Symfony/Component/Cache/Adapter/PhpArrayAdapter.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Cache/Adapter/PhpArrayAdapter.php
+10-3Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -275,10 +275,17 @@ public static function throwOnRequiredClass($class)
275275
'function' => 'spl_autoload_call',
276276
'args' => [$class],
277277
];
278-
$i = 1 + array_search($autoloadFrame, $trace, true);
279278

280-
if (isset($trace[$i]['function']) && !isset($trace[$i]['class'])) {
281-
switch ($trace[$i]['function']) {
279+
if (\PHP_VERSION_ID >= 80000 && isset($trace[1])) {
280+
$callerFrame = $trace[1];
281+
} elseif (false !== $i = array_search($autoloadFrame, $trace, true)) {
282+
$callerFrame = $trace[++$i];
283+
} else {
284+
throw $e;
285+
}
286+
287+
if (isset($callerFrame['function']) && !isset($callerFrame['class'])) {
288+
switch ($callerFrame['function']) {
282289
case 'get_class_methods':
283290
case 'get_class_vars':
284291
case 'get_parent_class':

‎src/Symfony/Component/Config/Resource/ClassExistenceResource.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Config/Resource/ClassExistenceResource.php
+10-5Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -190,12 +190,17 @@ public static function throwOnRequiredClass($class, \Exception $previous = null)
190190
'args' => [$class],
191191
];
192192

193-
if (false === $i = array_search($autoloadFrame, $trace, true)) {
193+
if (\PHP_VERSION_ID >= 80000 && isset($trace[1])) {
194+
$callerFrame = $trace[1];
195+
$i = 2;
196+
} elseif (false !== $i = array_search($autoloadFrame, $trace, true)) {
197+
$callerFrame = $trace[++$i];
198+
} else {
194199
throw $e;
195200
}
196201

197-
if (isset($trace[++$i]['function']) && !isset($trace[$i]['class'])) {
198-
switch ($trace[$i]['function']) {
202+
if (isset($callerFrame['function']) && !isset($callerFrame['class'])) {
203+
switch ($callerFrame['function']) {
199204
case 'get_class_methods':
200205
case 'get_class_vars':
201206
case 'get_parent_class':
@@ -214,8 +219,8 @@ public static function throwOnRequiredClass($class, \Exception $previous = null)
214219
}
215220

216221
$props = [
217-
'file' => isset($trace[$i]['file']) ? $trace[$i]['file'] : null,
218-
'line' => isset($trace[$i]['line']) ? $trace[$i]['line'] : null,
222+
'file' => isset($callerFrame['file']) ? $callerFrame['file'] : null,
223+
'line' => isset($callerFrame['line']) ? $callerFrame['line'] : null,
219224
'trace' => \array_slice($trace, 1 + $i),
220225
];
221226

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.