SenderMiddleware   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 27
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 5
lcom 0
cbo 3
dl 0
loc 27
ccs 11
cts 11
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A process() 0 24 5
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Aidphp\Http\Middleware;
6
7
use Psr\Http\Server\MiddlewareInterface;
8
use Psr\Http\Server\RequestHandlerInterface;
9
use Psr\Http\Message\ServerRequestInterface;
10
use Psr\Http\Message\ResponseInterface;
11
12
class SenderMiddleware implements MiddlewareInterface
13
{
14 1
    public function process(ServerRequestInterface $req, RequestHandlerInterface $handler): ResponseInterface
15
    {
16 1
        $res = $handler->handle($req);
17
18 1
        if (! headers_sent())
19
        {
20 1
            foreach ($res->getHeaders() as $name => $values)
21
            {
22 1
                foreach ($values as $value)
23
                {
24 1
                    header($name . ': ' . $value, false);
25
                }
26
            }
27
28 1
            $code = $res->getStatusCode();
29 1
            $text = $res->getReasonPhrase();
30
31 1
            header('HTTP/' . $res->getProtocolVersion() . ' ' . $code . ($text ? ' ' . $text : ''), true, $code);
32
        }
33
34 1
        echo $res->getBody()->__toString();
35
36 1
        return $res;
37
    }
38
}