SwooleResponseEmitter::toSwoole()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 2
dl 0
loc 8
ccs 5
cts 5
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
declare(strict_types=1);
3
4
namespace WShafer\SwooleExpressive\Bridge;
5
6
use Psr\Http\Message\ResponseInterface;
7
use Swoole\Http\Response as SwooleResponse;
8
use Zend\HttpHandlerRunner\Emitter\SapiEmitterTrait;
9
10
class SwooleResponseEmitter
11
{
12
    use SapiEmitterTrait;
13
14 1
    public function toSwoole(
15
        ResponseInterface $psr7Response,
16
        SwooleResponse $swooleResponse = null
17
    ) {
18 1
        $swooleResponse->status($psr7Response->getStatusCode());
19 1
        $this->populateHeaders($psr7Response, $swooleResponse);
0 ignored issues
show
Bug introduced by
It seems like $swooleResponse defined by parameter $swooleResponse on line 16 can be null; however, WShafer\SwooleExpressive...tter::populateHeaders() does not accept null, maybe add an additional type check?

It seems like you allow that null is being passed for a parameter, however the function which is called does not seem to accept null.

We recommend to add an additional type check (or disallow null for the parameter):

function notNullable(stdClass $x) { }

// Unsafe
function withoutCheck(stdClass $x = null) {
    notNullable($x);
}

// Safe - Alternative 1: Adding Additional Type-Check
function withCheck(stdClass $x = null) {
    if ($x instanceof stdClass) {
        notNullable($x);
    }
}

// Safe - Alternative 2: Changing Parameter
function withNonNullableParam(stdClass $x) {
    notNullable($x);
}
Loading history...
20 1
        $this->sendResponse($psr7Response, $swooleResponse);
0 ignored issues
show
Bug introduced by
It seems like $swooleResponse defined by parameter $swooleResponse on line 16 can be null; however, WShafer\SwooleExpressive...Emitter::sendResponse() does not accept null, maybe add an additional type check?

It seems like you allow that null is being passed for a parameter, however the function which is called does not seem to accept null.

We recommend to add an additional type check (or disallow null for the parameter):

function notNullable(stdClass $x) { }

// Unsafe
function withoutCheck(stdClass $x = null) {
    notNullable($x);
}

// Safe - Alternative 1: Adding Additional Type-Check
function withCheck(stdClass $x = null) {
    if ($x instanceof stdClass) {
        notNullable($x);
    }
}

// Safe - Alternative 2: Changing Parameter
function withNonNullableParam(stdClass $x) {
    notNullable($x);
}
Loading history...
21 1
    }
22
23 1
    protected function populateHeaders(
24
        ResponseInterface $psr7Response,
25
        SwooleResponse $swooleResponse
26
    ) {
27 1
        $headers = $psr7Response->getHeaders();
28
29 1
        foreach ($headers as $name => $values) {
30 1
            $name  = $this->filterHeader($name);
31
32 1
            if ($name === 'Set-Cookie') {
33 1
                $swooleResponse->header($name, end($values));
34 1
                continue;
35
            }
36
37 1
            $swooleResponse->header($name, implode(', ', $values));
38
        }
39 1
    }
40
41 1
    protected function sendResponse(
42
        ResponseInterface $psr7Response,
43
        SwooleResponse $swooleResponse
44
    ) {
45 1
        $content = $psr7Response->getBody();
46 1
        $content->rewind();
47 1
        $swooleResponse->end($content->getContents());
48 1
    }
49
}
50