Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
namespace Spatie\LaravelIgnition\FlareMiddleware;
4
 
5
use Illuminate\Database\QueryException;
6
use Spatie\FlareClient\FlareMiddleware\FlareMiddleware;
7
use Spatie\FlareClient\Report;
8
 
9
class AddExceptionInformation implements FlareMiddleware
10
{
11
    public function handle(Report $report, $next)
12
    {
13
        $throwable = $report->getThrowable();
14
 
15
        $this->addUserDefinedContext($report);
16
 
17
        if (! $throwable instanceof QueryException) {
18
            return $next($report);
19
        }
20
 
21
        $report->group('exception', [
22
            'raw_sql' => $throwable->getSql(),
23
        ]);
24
 
25
        return $next($report);
26
    }
27
 
28
    private function addUserDefinedContext(Report $report): void
29
    {
30
        $throwable = $report->getThrowable();
31
 
32
        if ($throwable === null) {
33
            return;
34
        }
35
 
36
        if (! method_exists($throwable, 'context')) {
37
            return;
38
        }
39
 
40
        $context = $throwable->context();
41
 
42
        if (! is_array($context)) {
43
            return;
44
        }
45
 
46
        foreach ($context as $key => $value) {
47
            $report->context($key, $value);
48
        }
49
    }
50
}