Completed
Pull Request — master (#28)
by Vitaliy
03:02
created

RequestContext::has()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 3
ccs 2
cts 2
cp 1
rs 10
cc 1
eloc 2
nc 1
nop 1
crap 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 $attributes = [];
25
26
27
    /**
28
     * @param string $method
29
     * @param array $attributes
30
     */
31 10
    public function __construct($method, array $attributes = []) {
32 10
      if (!is_string($method)) {
33
        throw new \InvalidArgumentException('Parameter "method" should be a string,  ' . gettype($method) . ' given.');
34
      }
35 10
      $method = mb_strtoupper($method);
36 10
      if (!in_array($method, [self::METHOD_GET, self::METHOD_POST])) {
37 1
        throw new \InvalidArgumentException('Invalid http method name.');
38
      }
39 9
      $this->method = $method;
40 9
      $this->attributes = $attributes;
41 9
    }
42
43
44
    /**
45
     * @return mixed
46
     */
47 1
    public function getMethod() {
48 1
      return $this->method;
49
    }
50
51
52
    /**
53
     * @param string $method
54
     * @return bool
55
     */
56 2
    public function isMethod($method) {
57 2
      return $this->method == mb_strtoupper($method);
58
    }
59
60
61
    /**
62
     * @param string $name
63
     * @return bool
64
     */
65 9
    public function has($name) {
66 9
      return isset($this->attributes[$name]);
67
    }
68
69
70
    /**
71
     * @param string $name
72
     * @return mixed|null
73
     */
74 9
    public function get($name) {
75 9
      return isset($this->attributes[$name]) ? $this->attributes[$name] : null;
76
    }
77
78
79
    /**
80
     * @return array
81
     */
82 2
    public function all() {
83 2
      return $this->attributes;
84
    }
85
86
87
  }