Completed
Pull Request — master (#28)
by Vitaliy
04:27
created

RequestContext   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 78
Duplicated Lines 0 %

Coupling/Cohesion

Components 2
Dependencies 0

Test Coverage

Coverage 94.74%

Importance

Changes 3
Bugs 0 Features 0
Metric Value
wmc 9
c 3
b 0
f 0
lcom 2
cbo 0
dl 0
loc 78
ccs 18
cts 19
cp 0.9474
rs 10

6 Methods

Rating   Name   Duplication   Size   Complexity  
A getMethod() 0 3 1
A isMethod() 0 3 1
A has() 0 3 1
A get() 0 3 2
A __construct() 0 11 3
A getData() 0 3 1
1
<?php
2
3
4
  namespace Fiv\Form;
5
6
7
  /**
8
   *
9
   */
10
  class RequestContext {
11
12
    CONST METHOD_GET = 'GET';
13
14
    CONST METHOD_POST = 'POST';
15
16
    /**
17
     * @var string
18
     */
19
    protected $method = null;
20
21
    /**
22
     * @var array
23
     */
24
    protected $data = [];
25
26
27
    /**
28
     * @param string $method
29
     * @param array $attributes
30
     */
31 28
    public function __construct($method, array $attributes = []) {
32 28
      if (!is_string($method)) {
33
        throw new \InvalidArgumentException('Parameter "method" should be a string,  ' . gettype($method) . ' given.');
34
      }
35 28
      $method = strtoupper($method);
36 28
      if (!in_array($method, [self::METHOD_GET, self::METHOD_POST])) {
37 1
        throw new \InvalidArgumentException('Invalid http method name.');
38
      }
39 27
      $this->method = $method;
40 27
      $this->data = $attributes;
41 27
    }
42
43
44
    /**
45
     * @return string
46
     */
47 1
    public function getMethod() {
48 1
      return $this->method;
49
    }
50
51
52
    /**
53
     * @param string $method
54
     * @return bool
55
     */
56 20
    public function isMethod($method) {
57 20
      return $this->method == mb_strtoupper($method);
58
    }
59
60
61
    /**
62
     * @param string $name
63
     * @return bool
64
     */
65 27
    public function has($name) {
66 27
      return isset($this->data[$name]);
67
    }
68
69
70
    /**
71
     * @param string $name
72
     * @return mixed|null
73
     */
74 24
    public function get($name) {
75 24
      return isset($this->data[$name]) ? $this->data[$name] : null;
76
    }
77
78
79
    /**
80
     * @return array
81
     */
82 20
    public function getData() {
83 20
      return $this->data;
84
    }
85
86
87
  }