ServerRequest::uploaded()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 15
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 9
CRAP Score 3

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 3
eloc 6
c 1
b 0
f 0
nc 3
nop 1
dl 0
loc 15
ccs 9
cts 9
cp 1
crap 3
rs 10
1
<?php
2
3
namespace Zapheus\Bridge\Psr\Interop;
4
5
use Zapheus\Bridge\Psr\ServerRequest as PsrServerRequest;
6
use Zapheus\Http\Message\RequestInterface;
7
8
/**
9
 * Zapheus to PSR-07 Server Request Bridge
10
 *
11
 * @package Zapheus
12
 * @author  Rougin Gutib <[email protected]>
13
 */
14
class ServerRequest extends PsrServerRequest
15
{
16
    /**
17
     * Initializes the server request instance.
18
     *
19
     * @param \Zapheus\Http\Message\RequestInterface $request
20
     */
21 54
    public function __construct(RequestInterface $request)
22
    {
23 54
        $server = (array) $request->server();
24
25 54
        $cookies = $request->cookies();
26
27 54
        parent::__construct($server, $cookies, $request->queries());
28
29 54
        $this->headers = $request->headers();
30
31 54
        $this->version = $request->version();
32
33 54
        $this->data = $request->data();
34
35 54
        $this->attributes = $request->attributes();
36
37 54
        $this->uri = new Uri($request->uri());
38
39 54
        $this->body = new Stream($request->stream());
40
41 54
        $this->uploaded = $this->uploaded($request);
42 54
    }
43
44
    /**
45
     * Returns an array of global variables.
46
     *
47
     * @param  \Zapheus\Http\Message\RequestInterface $request
48
     * @return \Psr\Http\Message\UploadedFileInterface[]
49
     */
50 54
    protected function uploaded(RequestInterface $request)
51
    {
52 54
        list($items, $uploaded) = array($request->files(), array());
53
54 54
        foreach ($items as $key => $files)
55
        {
56 54
            $uploaded[$key] = array();
57
58 54
            foreach ($files as $file)
59
            {
60 54
                array_push($uploaded[$key], new UploadedFile($file));
61 18
            }
62 18
        }
63
   
64 54
        return (array) $uploaded;
65
    }
66
}
67