Curl   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 16
c 2
b 0
f 0
dl 0
loc 26
ccs 15
cts 15
cp 1
rs 10
wmc 4

1 Method

Rating   Name   Duplication   Size   Complexity  
A sendRequest() 0 24 4
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Buzz\Client;
6
7
use Psr\Http\Message\RequestInterface;
8
use Psr\Http\Message\ResponseInterface;
9
10
/**
11
 * @author Tobias Nyholm <[email protected]>
12
 */
13
class Curl extends AbstractCurl implements BuzzClientInterface
14
{
15 59
    public function sendRequest(RequestInterface $request, array $options = []): ResponseInterface
16
    {
17 59
        $options = $this->validateOptions($options);
18 58
        $curl = $this->createHandle();
19 58
        $responseBuilder = $this->prepare($curl, $request, $options);
20
21 58
        $curlInfo = null;
22
        try {
23 58
            curl_exec($curl);
24 58
            $this->parseError($request, curl_errno($curl), $curl);
25
26 53
            if ($options->get('expose_curl_info')) {
27 1
                $curlInfo = curl_getinfo($curl);
28
            }
29 53
        } finally {
30 58
            $this->releaseHandle($curl);
31
        }
32
33 53
        $response = $responseBuilder->getResponse();
34 53
        if (null !== $curlInfo && $value = json_encode($curlInfo)) {
35 1
            $response = $response->withHeader('__curl_info', $value);
36
        }
37
38 53
        return $response;
39
    }
40
}
41