Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
11 / 11
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
ErrorLoggingMiddleware
100.00% covered (success)
100.00%
11 / 11
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
1 / 1
 process
100.00% covered (success)
100.00%
11 / 11
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3declare(strict_types=1);
4
5namespace App\Shared\Security;
6
7use App\Shared\Logging\CentralLogger;
8use Psr\Http\Message\ResponseInterface;
9use Psr\Http\Message\ServerRequestInterface;
10use Psr\Http\Server\MiddlewareInterface;
11use Psr\Http\Server\RequestHandlerInterface;
12use Throwable;
13
14 class ErrorLoggingMiddleware implements MiddlewareInterface
15{
16    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
17    {
18        try {
19            return $handler->handle($request);
20        } catch (Throwable $e) {
21            CentralLogger::logAppError($e->getMessage(), [
22                'exception_class' => get_class($e),
23                'file' => $e->getFile(),
24                'line' => $e->getLine(),
25                'uri' => (string) $request->getUri(),
26                'method' => $request->getMethod(),
27                'trace' => $e->getTraceAsString(),
28            ]);
29            throw $e;
30        }
31    }
32}