ParameterContainer   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 60
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 7
dl 0
loc 60
rs 10
c 0
b 0
f 0
wmc 6

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 2
A getParameterBag() 0 3 1
A hasParameter() 0 3 1
A getParameter() 0 3 1
A setParameter() 0 3 1
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: james
5
 * Date: 24/07/2018
6
 * Time: 09:19
7
 */
8
9
namespace Specter\Container;
10
11
use InvalidArgumentException;
12
use Symfony\Component\HttpFoundation\ParameterBag;
13
14
/**
15
 * Class ParameterContainer
16
 *
17
 * @package Specter\Container
18
 * @author James Parker <[email protected]>
19
 */
20
class ParameterContainer extends Container
21
{
22
    /** @var ParameterBag */
23
    private $parameterBag;
24
25
    /**
26
     * ParameterContainer constructor.
27
     *
28
     * @param ParameterBag|null $parameterBag
29
     */
30
    public function __construct(ParameterBag $parameterBag = null)
31
    {
32
        $this->parameterBag = $parameterBag ?: new ParameterBag();
33
    }
34
35
    /**
36
     * Gets the service container parameter bag.
37
     *
38
     * @return ParameterBag A ParameterBagInterface instance
39
     */
40
    public function getParameterBag()
41
    {
42
        return $this->parameterBag;
43
    }
44
45
    /**
46
     * Gets a parameter.
47
     *
48
     * @param string $name The parameter name
49
     *
50
     * @return mixed The parameter value
51
     *
52
     * @throws InvalidArgumentException if the parameter is not defined
53
     */
54
    public function getParameter($name)
55
    {
56
        return $this->parameterBag->get($name);
57
    }
58
59
    /**
60
     * Checks if a parameter exists.
61
     *
62
     * @param string $name The parameter name
63
     *
64
     * @return bool The presence of parameter in container
65
     */
66
    public function hasParameter($name)
67
    {
68
        return $this->parameterBag->has($name);
69
    }
70
71
    /**
72
     * Sets a parameter.
73
     *
74
     * @param string $name The parameter name
75
     * @param mixed $value The parameter value
76
     */
77
    public function setParameter($name, $value)
78
    {
79
        $this->parameterBag->set($name, $value);
80
81
    }
82
}
83