Failed Conditions
Push — master ( c04808...f5c6c8 )
by Arnold
04:54
created

CheckRequest   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 77
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 9
lcom 1
cbo 1
dl 0
loc 77
ccs 17
cts 17
cp 1
rs 10
c 0
b 0
f 0

7 Methods

Rating   Name   Duplication   Size   Complexity  
getRequest() 0 1 ?
A isGetRequest() 0 6 2
A isPostRequest() 0 4 1
A isPutRequest() 0 4 1
A isDeleteRequest() 0 4 1
A isHeadRequest() 0 4 1
A getLocalReferer() 0 8 3
1
<?php
2
3
namespace Jasny\Controller;
4
5
use Psr\Http\Message\ServerRequestInterface;
6
7
/**
8
 * Controller methods to check the request
9
 */
10
trait CheckRequest
11
{
12
    /**
13
     * Get request, set for controller
14
     *
15
     * @return ServerRequestInterface
16
     */
17
    abstract public function getRequest();
18
    
19
    
20
    /**
21
     * Check if request is GET request
22
     *
23
     * @return boolean
24
     */
25 5
    public function isGetRequest()
26 1
    {
27 5
        $method = $this->getRequest()->getMethod();
28
29 5
        return !$method || $method === 'GET';
30
    }
31
32
    /**
33
     * Check if request is POST request
34
     *
35
     * @return boolean
36
     */
37 5
    public function isPostRequest()
38
    {
39 5
        return $this->getRequest()->getMethod() === 'POST';
40
    }
41
42
    /**
43
     * Check if request is PUT request
44
     *
45
     * @return boolean
46
     */
47 5
    public function isPutRequest()
48
    {
49 5
        return $this->getRequest()->getMethod() === 'PUT';
50
    }
51
52
    /**
53
     * Check if request is DELETE request
54
     *
55
     * @return boolean
56
     */
57 5
    public function isDeleteRequest()
58
    {
59 5
        return $this->getRequest()->getMethod() === 'DELETE';
60
    }
61
    
62
    /**
63
     * Check if request is HEAD request
64
     *
65
     * @return boolean
66
     */
67 5
    public function isHeadRequest()
68
    {
69 5
        return $this->getRequest()->getMethod() === 'HEAD';
70
    }
71
    
72
73
    /**
74
     * Returns the HTTP referer if it is on the current host
75
     *
76
     * @return string
77
     */
78 3
    public function getLocalReferer()
79
    {
80 3
        $request = $this->getRequest();
81 3
        $referer = $request->getHeaderLine('HTTP_REFERER');
82 3
        $host = $request->getHeaderLine('HTTP_HOST');
83
84 3
        return $referer && parse_url($referer, PHP_URL_HOST) === $host ? $referer : '';
85
    }
86
}