🎉
This commit is contained in:
58
vendor/spatie/laravel-ignition/src/FlareMiddleware/AddExceptionInformation.php
vendored
Normal file
58
vendor/spatie/laravel-ignition/src/FlareMiddleware/AddExceptionInformation.php
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
namespace Spatie\LaravelIgnition\FlareMiddleware;
|
||||
|
||||
use Illuminate\Database\QueryException;
|
||||
use Spatie\FlareClient\Contracts\ProvidesFlareContext;
|
||||
use Spatie\FlareClient\FlareMiddleware\FlareMiddleware;
|
||||
use Spatie\FlareClient\Report;
|
||||
|
||||
class AddExceptionInformation implements FlareMiddleware
|
||||
{
|
||||
public function handle(Report $report, $next)
|
||||
{
|
||||
$throwable = $report->getThrowable();
|
||||
|
||||
$this->addUserDefinedContext($report);
|
||||
|
||||
if (! $throwable instanceof QueryException) {
|
||||
return $next($report);
|
||||
}
|
||||
|
||||
$report->group('exception', [
|
||||
'raw_sql' => $throwable->getSql(),
|
||||
]);
|
||||
|
||||
return $next($report);
|
||||
}
|
||||
|
||||
private function addUserDefinedContext(Report $report): void
|
||||
{
|
||||
$throwable = $report->getThrowable();
|
||||
|
||||
if ($throwable === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ($throwable instanceof ProvidesFlareContext) {
|
||||
// ProvidesFlareContext writes directly to context groups and is handled in the flare-client-php package.
|
||||
return;
|
||||
}
|
||||
|
||||
if (! method_exists($throwable, 'context')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$context = $throwable->context();
|
||||
|
||||
if (! is_array($context)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$exceptionContextGroup = [];
|
||||
foreach ($context as $key => $value) {
|
||||
$exceptionContextGroup[$key] = $value;
|
||||
}
|
||||
$report->group('exception', $exceptionContextGroup);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user