RequestBuilder   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 1
dl 0
loc 39
ccs 5
cts 5
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A create() 0 9 1
1
<?php
2
declare(strict_types = 1);
3
4
namespace AdamPaterson\ApiClient\Foundation\Http;
5
6
use Http\Discovery\MessageFactoryDiscovery;
7
use Http\Message\RequestFactory;
8
use Psr\Http\Message\RequestInterface;
9
10
/**
11
 * Class RequestBuilder
12
 *
13
 * @package AdamPaterson\ApiClient\Foundation\Http
14
 */
15
final class RequestBuilder
16
{
17
    /**
18
     * @var \Http\Message\MessageFactory|\Http\Message\RequestFactory
19
     */
20
    private $requestFactory;
21
22
23
    /**
24
     * RequestBuilder constructor.
25
     *
26
     * @param \Http\Message\RequestFactory|null $requestFactory
27
     */
28 24
    public function __construct(RequestFactory $requestFactory = null)
29
    {
30 24
        $this->requestFactory = $requestFactory ?? MessageFactoryDiscovery::find();
31 24
    }
32
33
    /**
34
     * Create request using request factory
35
     *
36
     * @param string $method
37
     * @param string $uri
38
     * @param array  $headers
39
     * @param null   $body
40
     * @param string $protocol
41
     *
42
     * @return \Psr\Http\Message\RequestInterface
43
     */
44 18
    public function create(
45
        string $method,
46
        string $uri,
47
        array $headers = [],
48
        $body = null,
49
        $protocol = '1.1'
50
    ): RequestInterface {
51 18
        return $this->requestFactory->createRequest($method, $uri, $headers, $body, $protocol);
52
    }
53
}
54