Request   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 53
Duplicated Lines 0 %

Test Coverage

Coverage 91.67%

Importance

Changes 0
Metric Value
eloc 21
dl 0
loc 53
ccs 22
cts 24
cp 0.9167
rs 10
c 0
b 0
f 0
wmc 8

6 Methods

Rating   Name   Duplication   Size   Complexity  
A has() 0 5 1
A var() 0 5 1
A attr() 0 3 1
A getArgs() 0 20 3
A hasAttr() 0 5 1
A getParams() 0 3 1
1
<?php
2
3
namespace WebTheory\Saveyour\Http;
4
5
use Psr\Http\Message\ServerRequestInterface;
6
7
class Request
8
{
9 72
    public static function var(ServerRequestInterface $request, $param)
10
    {
11 72
        $request = static::getArgs($request);
12
13 72
        return $request[$param] ?? null;
14
    }
15
16 72
    public static function has(ServerRequestInterface $request, $param): bool
17
    {
18 72
        $request = static::getArgs($request);
19
20 72
        return isset($request[$param]);
21
    }
22
23 3
    public static function attr(ServerRequestInterface $request, $attribute)
24
    {
25 3
        return $request->getAttribute($attribute);
26
    }
27
28 3
    public static function hasAttr(ServerRequestInterface $request, $attribute): bool
29
    {
30 3
        $attributes = $request->getAttributes();
31
32 3
        return isset($attributes[$attribute]);
33
    }
34
35 99
    public static function getArgs(ServerRequestInterface $request): array
36
    {
37 99
        switch ($request->getMethod()) {
38 99
            case 'GET':
39 6
                $request = $request->getQueryParams();
40
41 6
                break;
42
43 93
            case 'POST':
44 30
                $request = $request->getParsedBody();
45
46 30
                break;
47
48
            default:
49 63
                $request = $request->getParsedBody();
50
51 63
                break;
52
        }
53
54 99
        return (array) $request;
55
    }
56
57
    public static function getParams(ServerRequestInterface $request): array
58
    {
59
        return array_keys(static::getArgs($request));
60
    }
61
}
62