Skip to content

Commit 0ef96ca

Browse files
Merge branch '4.4' into 5.0
* 4.4: Parse and render anonymous classes correctly on php 8 Enable APCu for the php 8 build. [Process] Fix failing test on php 8. [HttpKernel] fix test Make PHP 8 green on Travis Revert "[Cache] allow DBAL v3" [PropertyAccessor] Added missing property path on php 8. Don't execute tests with DBAL 2.x on php 8.
2 parents 25095a0 + 9ecbc89 commit 0ef96ca

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
lines changed

Caster/ClassStub.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,9 @@ public function __construct(string $identifier, $callable = null)
5555
}
5656
}
5757

58-
if (false !== strpos($identifier, "class@anonymous\0")) {
59-
$this->value = $identifier = preg_replace_callback('/class@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)[0-9a-fA-F]++/', function ($m) {
60-
return class_exists($m[0], false) ? get_parent_class($m[0]).'@anonymous' : $m[0];
58+
if (false !== strpos($identifier, "@anonymous\0")) {
59+
$this->value = $identifier = preg_replace_callback('/[a-zA-Z_\x7f-\xff][\\\\a-zA-Z0-9_\x7f-\xff]*+@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)[0-9a-fA-F]++/', function ($m) {
60+
return class_exists($m[0], false) ? (get_parent_class($m[0]) ?: key(class_implements($m[0])) ?: 'class').'@anonymous' : $m[0];
6161
}, $identifier);
6262
}
6363

Caster/ExceptionCaster.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,7 @@ public static function castThrowingCasterException(ThrowingCasterException $e, a
7373

7474
if (isset($a[$xPrefix.'previous'], $a[$trace]) && $a[$xPrefix.'previous'] instanceof \Exception) {
7575
$b = (array) $a[$xPrefix.'previous'];
76-
$class = \get_class($a[$xPrefix.'previous']);
77-
$class = 'c' === $class[0] && 0 === strpos($class, "class@anonymous\0") ? get_parent_class($class).'@anonymous' : $class;
76+
$class = get_debug_type($a[$xPrefix.'previous']);
7877
self::traceUnshift($b[$xPrefix.'trace'], $class, $b[$prefix.'file'], $b[$prefix.'line']);
7978
$a[$trace] = new TraceStub($b[$xPrefix.'trace'], false, 0, -\count($a[$trace]->value));
8079
}
@@ -282,9 +281,9 @@ private static function filterExceptionArray(string $xClass, array $a, string $x
282281
}
283282
unset($a[$xPrefix.'string'], $a[Caster::PREFIX_DYNAMIC.'xdebug_message'], $a[Caster::PREFIX_DYNAMIC.'__destructorException']);
284283

285-
if (isset($a[Caster::PREFIX_PROTECTED.'message']) && false !== strpos($a[Caster::PREFIX_PROTECTED.'message'], "class@anonymous\0")) {
286-
$a[Caster::PREFIX_PROTECTED.'message'] = preg_replace_callback('/class@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)[0-9a-fA-F]++/', function ($m) {
287-
return class_exists($m[0], false) ? get_parent_class($m[0]).'@anonymous' : $m[0];
284+
if (isset($a[Caster::PREFIX_PROTECTED.'message']) && false !== strpos($a[Caster::PREFIX_PROTECTED.'message'], "@anonymous\0")) {
285+
$a[Caster::PREFIX_PROTECTED.'message'] = preg_replace_callback('/[a-zA-Z_\x7f-\xff][\\\\a-zA-Z0-9_\x7f-\xff]*+@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)[0-9a-fA-F]++/', function ($m) {
286+
return class_exists($m[0], false) ? (get_parent_class($m[0]) ?: key(class_implements($m[0])) ?: 'class').'@anonymous' : $m[0];
288287
}, $a[Caster::PREFIX_PROTECTED.'message']);
289288
}
290289

0 commit comments

Comments
 (0)