Completed
Push — master ( f85b73...7f85ed )
by Bohuslav
02:46
created

ServerRequestFactory   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 6

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 1
c 1
b 0
f 0
lcom 0
cbo 6
dl 0
loc 34
ccs 19
cts 19
cp 1
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B create() 0 24 1
1
<?php
2
namespace Kambo\HttpMessage\Factories\Environment;
3
4
// \Psr
5
use Psr\Http\Message\ServerRequestInterface;
6
use Psr\Http\Message\UriInterface;
7
8
// \HttpMessage
9
use Kambo\HttpMessage\Uri;
10
use Kambo\HttpMessage\UploadedFile;
11
use Kambo\HttpMessage\Headers;
12
use Kambo\HttpMessage\ServerRequest;
13
use Kambo\HttpMessage\Stream;
14
15
// \HttpMessage\Environment
16
use Kambo\HttpMessage\Environment\Environment;
17
18
// \HttpMessage\Factories
19
use Kambo\HttpMessage\Factories\Environment\Interfaces\Factory;
20
use Kambo\HttpMessage\Factories\Environment\Superglobal\FilesFactory;
21
use Kambo\HttpMessage\Factories\Environment\Superglobal\HeadersFactory;
22
use Kambo\HttpMessage\Factories\Environment\Superglobal\UriFactory;
23
24
/**
25
 * Create instance of ServerRequest object from instance of Environment object
26
 *
27
 * @package Kambo\HttpMessage\Factories\Environment
28
 * @author  Bohuslav Simek <[email protected]>
29
 * @license MIT
30
 */
31
class ServerRequestFactory implements Factory
32
{
33
    /**
34
     * Create instance of ServerRequest object from instance of Environment object
35
     *
36
     * @param Environment $environment environment data
37
     *
38
     * @return ServerRequest Instance of ServerRequest object
39
     */
40 1
    public function create(Environment $environment)
41 1
    {
42 1
        $uri         = (new UriFactory())->create($environment);
43 1
        $uploadFiles = (new FilesFactory())->create($environment);
44 1
        $headers     = (new HeadersFactory())->create($environment);
45
46 1
        $cookies       = $environment->getCookies();
47 1
        $requestMethod = $environment->getRequestMethod();
48 1
        $bodyStream    = new Stream($environment->getBody());
49 1
        $protocol      = $environment->getProtocolVersion();
50
51 1
        $serverVariables = $environment->getServer();
52
53 1
        return new ServerRequest(
54 1
            $requestMethod,
55 1
            $uri,
56 1
            $bodyStream,
57 1
            $headers,
58 1
            $serverVariables,
59 1
            $cookies,
60 1
            $uploadFiles,
61
            $protocol
62 1
        );
63
    }
64
}
65