Passed
Pull Request — master (#4)
by
unknown
03:09
created

Session::__get()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 6
ccs 0
cts 2
cp 0
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 1
crap 2
1
<?php
2
/**
3
 * SessionStorage.php
4
 *
5
 * @copyright      More in license.md
6
 * @license        http://www.ipublikuj.eu
7
 * @author         Adam Kadlec http://www.ipublikuj.eu
8
 * @package        iPublikuj:FlashMessages!
9
 * @subpackage     Storage
10
 * @since          1.0.0
11
 *
12
 * @date           08.06.14
13
 */
14
15
declare(strict_types = 1);
16
17
namespace IPub\FlashMessages\Storage;
18
19
use Nette;
20
use Nette\Http;
21
22
/**
23
 * Message session status storage
24
 *
25
 * @package        iPublikuj:FlashMessages!
26
 * @subpackage     Storage
27
 *
28
 * @author         Adam Kadlec <[email protected]>
29
 */
30 1
final class Session implements IStorage
31
{
32
	/**
33
	 * @var Http\SessionSection
34
	 */
35
	private $session;
36
37
	/**
38
	 * @param Http\Session $session
39
	 */
40
	public function __construct(Http\Session $session)
41
	{
42 1
		$this->session = $session->getSection('ipub.flash-messages');
43 1
	}
44
45
	/**
46
	 * {@inheritdoc}
47
	 */
48
	public function set(string $key, $value)
49
	{
50 1
		$this->session->$key = $value;
51 1
	}
52
53
	/**
54
	 * {@inheritdoc}
55
	 */
56
	public function get(string $key, $default = FALSE)
57
	{
58 1
		return isset($this->session->$key) ? $this->session->$key : $default;
59
	}
60
61
	/**
62
	 * {@inheritdoc}
63
	 */
64
	public function clear(string $key)
65
	{
66
		unset($this->session->$key);
67
	}
68
69
	/**
70
	 * {@inheritdoc}
71
	 */
72
	public function clearAll()
73
	{
74
		$this->session->remove();
75
	}
76
77
	/**
78
	 * @param string $name
79
	 *
80
	 * @return mixed
81
	 */
82
	public function &__get($name)
83
	{
84
		$value = $this->get($name);
85
86
		return $value;
87
	}
88
89
	/**
90
	 * @param string $name
91
	 * @param mixed $value
92
	 *
93
	 * @return void
94
	 */
95
	public function __set($name, $value)
96
	{
97
		$this->set($name, $value);
98
	}
99
100
	/**
101
	 * @param string $name
102
	 *
103
	 * @return bool
104
	 */
105
	public function __isset($name)
106
	{
107
		return isset($this->session->$name);
108
	}
109
110
	/**
111
	 * @param string $name
112
	 *
113
	 * @return void
114
	 */
115
	public function __unset($name)
116
	{
117
		$this->clear($name);
118
	}
119
}
120