Request::uploaded()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 17
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 10
CRAP Score 3

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 3
eloc 7
c 2
b 0
f 0
nc 3
nop 1
dl 0
loc 17
ccs 10
cts 10
cp 1
crap 3
rs 10
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 27
    public function __construct(ServerRequestInterface $request)
22
    {
23 27
        $this->data = $request->getParsedBody();
24
25 27
        $this->cookies = $request->getCookieParams();
26
27 27
        $this->server = $request->getServerParams();
28
29 27
        $this->files = $this->uploaded($request);
30
31 27
        $this->attributes = $request->getAttributes();
32
33 27
        $this->queries = $request->getQueryParams();
34
35 27
        $this->headers = (array) $request->getHeaders();
36
37 27
        $this->uri = new Uri($request->getUri());
38
39 27
        $this->stream = new Stream($request->getBody());
40
41 27
        $this->version = $request->getProtocolVersion();
42 27
    }
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 27
    protected function uploaded(ServerRequestInterface $request)
51
    {
52 27
        list($items, $uploaded) = array(array(), array());
53
54 27
        $items = $request->getUploadedFiles();
55
56 27
        foreach ((array) $items as $key => $files)
57
        {
58 27
            $uploaded[$key] = array();
59
60 27
            foreach ((array) $files as $file)
61
            {
62 27
                array_push($uploaded[$key], new File($file));
63 9
            }
64 9
        }
65
66 27
        return (array) $uploaded;
67
    }
68
}
69