Passed
Push — master ( 42b16f...37358f )
by Zlatin
01:56
created

ServerRequestFactory   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 19
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
dl 0
loc 19
ccs 0
cts 13
cp 0
rs 10
c 0
b 0
f 0
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A createServerRequestFromArray() 0 7 2
A createServerRequest() 0 7 2
1
<?php
2
namespace DevOp\Core\Http\Factory;
3
4
use DevOp\Core\Http\Uri;
5
use DevOp\Core\Http\Stream;
6
use DevOp\Core\Http\ServerRequest;
7
use Psr\Http\Message\UriInterface;
8
use Interop\Http\Factory\ServerRequestFactoryInterface;
9
10
class ServerRequestFactory implements ServerRequestFactoryInterface
11
{
12
13
    public function createServerRequest($method, UriInterface $uri = null)
14
    {
15
        if (!$uri instanceof UriInterface) {
16
            $uri = new Uri($uri);
17
        }
18
19
        return new ServerRequest($method, $uri);
0 ignored issues
show
Bug introduced by
The call to DevOp\Core\Http\ServerRequest::__construct() has too few arguments starting with body. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

19
        return /** @scrutinizer ignore-call */ new ServerRequest($method, $uri);

This check compares calls to functions or methods with their respective definitions. If the call has less arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above.

Loading history...
20
    }
21
22
    public function createServerRequestFromArray(array $server)
23
    {
24
        $method = $server['REQUEST_METHOD'] ?: 'GET';
25
        $uri = new Uri('');
26
        $body = new Stream('php://temp');
0 ignored issues
show
Bug introduced by
'php://temp' of type string is incompatible with the type Psr\Http\Message\StreamInterface expected by parameter $handle of DevOp\Core\Http\Stream::__construct(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

26
        $body = new Stream(/** @scrutinizer ignore-type */ 'php://temp');
Loading history...
27
28
        return new ServerRequest($method, $uri, $server, $body, '1.1');
29
    }
30
}
31