Request::resolve()   B
last analyzed

Complexity

Conditions 3
Paths 4

Size

Total Lines 30
Code Lines 25

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 27
CRAP Score 3

Importance

Changes 2
Bugs 0 Features 1
Metric Value
c 2
b 0
f 1
dl 0
loc 30
ccs 27
cts 27
cp 1
rs 8.8571
cc 3
eloc 25
nc 4
nop 0
crap 3
1
<?php
2
/**
3
 * User: LAHAXE Arnaud
4
 * Date: 02/11/2015
5
 * Time: 14:07
6
 * FileName : Request.php
7
 * Project : profiler
8
 */
9
10
namespace Ndrx\Profiler\Collectors\Data;
11
12
use Ndrx\Profiler\Collectors\Collector;
13
use Ndrx\Profiler\Collectors\Contracts\StartCollectorInterface;
14
15
class Request extends Collector implements StartCollectorInterface
16
{
17
    /**
18
     * Fetch data
19
     *
20
     * @return mixed
21
     */
22 10
    public function resolve()
23
    {
24 10
        $request = $this->process->getContext()->getRequest();
25 10
        $hasSession = $request->getSession() !== null;
26 10
        $this->data = [
27 10
            'method' => $request->getMethod(),
28 10
            'real-method' => $request->getRealMethod(),
29 10
            'uri' => $request->getUri(),
30 10
            'scriptName' => $request->getScriptName(),
31 10
            'port' => $request->getPort(),
32 10
            'ssl' => $request->isSecure(),
33 10
            'scheme' => $request->getScheme(),
34 10
            'accept-content-types' => $request->getAcceptableContentTypes(),
35 10
            'cookies' => $request->cookies->all(),
36 10
            'headers' => $request->headers->all(),
37
            'data' => [
38 10
                'get' => $request->query->all(),
39 10
                'post' => $request->request->all()
40 10
            ],
41 10
            'charsets' => $request->getCharsets(),
42 10
            'default-local' => $request->getDefaultLocale(),
43 10
            'local' => $request->getLocale(),
44 10
            'encodings' => $request->getEncodings(),
45 10
            'etags' => $request->getETags(),
46
            'session' => [
47 10
                'id' => $hasSession ? $request->getSession()->getId() : null,
48 10
                'data' => $hasSession ? $request->getSession()->all() : []
49 10
            ]
50 10
        ];
51 10
    }
52
53
54 104
    public function getDataFields()
55
    {
56
        return [
57 104
            'method', 'real-method', 'uri', 'scriptName', 'port', 'ssl', 'scheme',
58 104
            'accept-content-types', 'cookies', 'headers', 'data',
59 104
            'charsets', 'default-local', 'local', 'encodings', 'etags', 'session'
60 104
        ];
61
    }
62
63
    /**
64
     * The path in the final json
65
     *
66
     * @example
67
     *              path /aa/bb
68
     *              will be transformed to
69
     *              {
70
     *              aa : {
71
     *              bb: <VALUE OF RESOLVE>
72
     *              }
73
     *              }
74
     * @return mixed
75
     */
76 104
    public function getPath()
77
    {
78 104
        return 'request';
79
    }
80
}
81