HttplugFactory   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 8
c 1
b 0
f 0
dl 0
loc 30
ccs 11
cts 11
cp 1
rs 10
wmc 5

4 Methods

Rating   Name   Duplication   Size   Complexity  
A createStream() 0 3 1
A createRequest() 0 4 1
A createUri() 0 7 2
A createResponse() 0 8 1
1
<?php
2
declare(strict_types=1);
3
4
namespace PTS\Psr7\Factory;
5
6
use Http\Message\MessageFactory;
7
use Http\Message\StreamFactory;
8
use Http\Message\UriFactory;
9
use Psr\Http\Message\RequestInterface;
10
use Psr\Http\Message\ResponseInterface;
11
use Psr\Http\Message\StreamInterface;
12
use Psr\Http\Message\UriInterface;
13
use PTS\Psr7\Request;
14
use PTS\Psr7\Response;
15
use PTS\Psr7\Stream;
16
use PTS\Psr7\Uri;
17 1
18
class HttplugFactory implements MessageFactory, StreamFactory, UriFactory
19 1
{
20 1
    public function createRequest($method, $uri, array $headers = [], $body = null, $protocolVersion = '1.1'): RequestInterface
21
    {
22
        $uri = $this->createUri($uri);
23 1
        return new Request($method, $uri, $headers, $body, $protocolVersion);
24
    }
25
26
    public function createResponse(
27
        $statusCode = 200,
28
        $reasonPhrase = null,
29
        array $headers = [],
30 1
        $body = null,
31
        $version = '1.1'
32
    ): ResponseInterface {
33 1
        return new Response((int)$statusCode, $headers, $body, $version, $reasonPhrase);
34
    }
35 1
36
    public function createStream($body = null): StreamInterface
37
    {
38 2
        return Stream::create($body ?? '');
39
    }
40 2
41 1
    public function createUri($uri = ''): UriInterface
42
    {
43
        if ($uri instanceof UriInterface) {
44 2
            return $uri;
45
        }
46 1
47
        return new Uri($uri);
48
    }
49
}