Completed
Push — master ( a307b3...1e50c9 )
by Rougin
06:44
created

Request   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 53
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
A uploaded() 0 17 3
A __construct() 0 21 1
1
<?php
2
3
namespace Zapheus\Bridge\Psr\Zapheus;
4
5
use Psr\Http\Message\ServerRequestInterface;
6
use Zapheus\Http\Message\Request as ZapheusRequest;
7
8
/**
9
 * PSR-07 to Zapheus Server Request Bridge
10
 *
11
 * @package Zapheus
12
 * @author  Rougin Gutib <[email protected]>
13
 */
14
class Request extends ZapheusRequest
15
{
16
    /**
17
     * Initializes the server request instance.
18
     *
19
     * @param \Psr\Http\Message\ServerRequestInterface $request
20
     */
21
    public function __construct(ServerRequestInterface $request)
22
    {
23
        $this->data = $request->getParsedBody();
24
25
        $this->cookies = $request->getCookieParams();
26
27
        $this->server = $request->getServerParams();
28
29
        $this->files = $this->uploaded($request);
30
31
        $this->attributes = $request->getAttributes();
32
33
        $this->queries = $request->getQueryParams();
34
35
        $this->headers = (array) $request->getHeaders();
36
37
        $this->uri = new Uri($request->getUri());
38
39
        $this->stream = new Stream($request->getBody());
40
41
        $this->version = $request->getProtocolVersion();
42
    }
43
44
    /**
45
     * Returns an array of uploaded files.
46
     *
47
     * @param  \Psr\Http\Message\ServerRequestInterface $request
48
     * @return \Zapheus\Http\Message\FileInterface[]
49
     */
50
    protected function uploaded(ServerRequestInterface $request)
51
    {
52
        list($items, $uploaded) = array(array(), array());
53
54
        $items = $request->getUploadedFiles();
55
56
        foreach ((array) $items as $key => $files)
57
        {
58
            $uploaded[$key] = array();
59
60
            foreach ((array) $files as $file)
61
            {
62
                array_push($uploaded[$key], new File($file));
63
            }
64
        }
65
66
        return (array) $uploaded;
67
    }
68
}
69