%PDF- %PDF-
| Direktori : /www/loslex/demo/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/ |
| Current File : //www/loslex/demo/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php |
<?php
namespace Sentry\Laravel\Http;
use Closure;
use Illuminate\Container\Container;
use Illuminate\Contracts\Container\BindingResolutionException;
use Illuminate\Http\Request;
use Psr\Http\Message\ServerRequestInterface;
use Sentry\State\HubInterface;
use Throwable;
/**
* This middleware caches a PSR-7 version of the request as early as possible.
* This is done to prevent running into (mostly uploaded file) parsing failures.
*/
class SetRequestMiddleware
{
public function handle(Request $request, Closure $next)
{
$container = Container::getInstance();
if ($container->bound(HubInterface::class)) {
$psrRequest = $this->resolvePsrRequest($container);
if ($psrRequest !== null) {
$container->instance(LaravelRequestFetcher::CONTAINER_PSR7_INSTANCE_KEY, $psrRequest);
}
}
return $next($request);
}
private function resolvePsrRequest(Container $container): ?ServerRequestInterface
{
try {
return $container->make(ServerRequestInterface::class);
} catch (Throwable $e) {
// Do not crash if there is an exception thrown while resolving the request object
}
return null;
}
}