ServerRequestCreator::createFromGlobals()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 22
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 14
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 13
nc 1
nop 6
dl 0
loc 22
ccs 14
cts 14
cp 1
crap 1
rs 9.8333
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace HttpSoft\ServerRequest;
6
7
use HttpSoft\Message\ServerRequest;
8
use Psr\Http\Message\ServerRequestInterface;
9
10
final class ServerRequestCreator
11
{
12
    /**
13
     * @param ServerNormalizerInterface|null $normalizer
14
     * @return ServerRequestInterface
15
     */
16 1
    public static function create(?ServerNormalizerInterface $normalizer = null): ServerRequestInterface
17
    {
18 1
        return self::createFromGlobals(null, null, null, null, null, $normalizer);
19
    }
20
21
    /**
22
     * @param array|null $server
23
     * @param array|null $files
24
     * @param array|null $cookie
25
     * @param array|null $get
26
     * @param array|null $post
27
     * @param ServerNormalizerInterface|null $normalizer
28
     * @return ServerRequestInterface
29
     */
30 4
    public static function createFromGlobals(
31
        ?array $server = null,
32
        ?array $files = null,
33
        ?array $cookie = null,
34
        ?array $get = null,
35
        ?array $post = null,
36
        ?ServerNormalizerInterface $normalizer = null
37
    ): ServerRequestInterface {
38 4
        $server ??= $_SERVER;
39 4
        $normalizer ??= new SapiNormalizer();
40
41 4
        return new ServerRequest(
42 4
            $server,
43 4
            UploadedFileCreator::createFromGlobals($files ?? $_FILES),
44 4
            $cookie ?? $_COOKIE,
45 4
            $get ?? $_GET,
46 4
            $post ?? $_POST,
47 4
            $normalizer->normalizeMethod($server),
48 4
            $normalizer->normalizeUri($server),
49 4
            $normalizer->normalizeHeaders($server),
50 4
            new PhpInputStream(),
51 4
            $normalizer->normalizeProtocolVersion($server)
52 4
        );
53
    }
54
}
55