@@ -67,7 +67,7 @@ public static function createFromThrowable(\Throwable $exception, int $statusCod
67
67
$ e ->setStatusCode ($ statusCode );
68
68
$ e ->setHeaders ($ headers );
69
69
$ e ->setTraceFromThrowable ($ exception );
70
- $ e ->setClass ($ exception instanceof FatalThrowableError ? $ exception ->getOriginalClassName () : \get_class ($ exception ));
70
+ $ e ->setClass ($ exception instanceof FatalThrowableError ? $ exception ->getOriginalClassName () : get_debug_type ($ exception ));
71
71
$ e ->setFile ($ exception ->getFile ());
72
72
$ e ->setLine ($ exception ->getLine ());
73
73
@@ -134,7 +134,11 @@ public function getClass()
134
134
*/
135
135
public function setClass ($ class )
136
136
{
137
- $ this ->class = 'c ' === $ class [0 ] && 0 === strpos ($ class , "class@anonymous \0" ) ? get_parent_class ($ class ).'@anonymous ' : $ class ;
137
+ if (preg_match ('/^([ \\\\\w]+)@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)[0-9a-fA-F]++/ ' , $ class , $ matches )) {
138
+ $ this ->class = ('class ' === $ matches [1 ] ? get_parent_class ($ matches [0 ]) : $ matches [1 ]).'@anonymous ' ;
139
+ } else {
140
+ $ this ->class = $ class ;
141
+ }
138
142
139
143
return $ this ;
140
144
}
@@ -179,9 +183,13 @@ public function getMessage()
179
183
*/
180
184
public function setMessage ($ message )
181
185
{
182
- if (false !== strpos ($ message , "class@anonymous \0" )) {
183
- $ message = preg_replace_callback ('/class@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)[0-9a-fA-F]++/ ' , function ($ m ) {
184
- return class_exists ($ m [0 ], false ) ? get_parent_class ($ m [0 ]).'@anonymous ' : $ m [0 ];
186
+ if (str_contains ($ message , "@anonymous \0" )) {
187
+ $ message = preg_replace_callback ('/([a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*)@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)[0-9a-fA-F]++/ ' , static function ($ m ) {
188
+ if ('class ' === $ m [1 ]) {
189
+ return class_exists ($ m [0 ], false ) ? (get_parent_class ($ m [0 ]) ?: 'class ' ).'@anonymous ' : $ m [0 ];
190
+ }
191
+
192
+ return $ m [1 ].'@anonymous ' ;
185
193
}, $ message );
186
194
}
187
195
0 commit comments