RequestBuilder::create()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 9
ccs 2
cts 2
cp 1
rs 9.6666
c 0
b 0
f 0
cc 1
eloc 8
nc 1
nop 5
crap 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