Session   A
last analyzed

Complexity

Total Complexity 10

Size/Duplication

Total Lines 90
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Test Coverage

Coverage 35.29%

Importance

Changes 0
Metric Value
wmc 10
lcom 1
cbo 0
dl 0
loc 90
ccs 6
cts 17
cp 0.3529
rs 10
c 0
b 0
f 0

9 Methods

Rating   Name   Duplication   Size   Complexity  
A clear() 0 4 1
A clearAll() 0 4 1
A __get() 0 6 1
A __set() 0 4 1
A __isset() 0 4 1
A __unset() 0 4 1
A __construct() 0 4 1
A set() 0 4 1
A get() 0 4 2
1
<?php
2
/**
3
 * SessionStorage.php
4
 *
5
 * @copyright      More in license.md
6
 * @license        https://www.ipublikuj.eu
7
 * @author         Adam Kadlec <[email protected]>
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\Http;
20
21
/**
22
 * Message session status storage
23
 *
24
 * @package        iPublikuj:FlashMessages!
25
 * @subpackage     Storage
26
 *
27
 * @author         Adam Kadlec <[email protected]>
28
 */
29 1
final class Session implements IStorage
30
{
31
	/**
32
	 * @var Http\SessionSection
33
	 */
34
	private $session;
35
36
	/**
37
	 * @param Http\Session $session
38
	 */
39
	public function __construct(Http\Session $session)
40
	{
41 1
		$this->session = $session->getSection('ipub.flash-messages');
42 1
	}
43
44
	/**
45
	 * {@inheritdoc}
46
	 */
47
	public function set(string $key, $value) : void
48
	{
49 1
		$this->session->$key = $value;
50 1
	}
51
52
	/**
53
	 * {@inheritdoc}
54
	 */
55
	public function get(string $key, $default = FALSE)
56
	{
57 1
		return isset($this->session->$key) ? $this->session->$key : $default;
58
	}
59
60
	/**
61
	 * {@inheritdoc}
62
	 */
63
	public function clear(string $key) : void
64
	{
65
		unset($this->session->$key);
66
	}
67
68
	/**
69
	 * {@inheritdoc}
70
	 */
71
	public function clearAll() : void
72
	{
73
		$this->session->remove();
74
	}
75
76
	/**
77
	 * @param string $name
78
	 *
79
	 * @return mixed
80
	 */
81
	public function &__get($name)
82
	{
83
		$value = $this->get($name);
84
85
		return $value;
86
	}
87
88
	/**
89
	 * @param string $name
90
	 * @param mixed $value
91
	 *
92
	 * @return void
93
	 */
94
	public function __set($name, $value)
95
	{
96
		$this->set($name, $value);
97
	}
98
99
	/**
100
	 * @param string $name
101
	 *
102
	 * @return bool
103
	 */
104
	public function __isset($name)
105
	{
106
		return isset($this->session->$name);
107
	}
108
109
	/**
110
	 * @param string $name
111
	 *
112
	 * @return void
113
	 */
114
	public function __unset($name)
115
	{
116
		$this->clear($name);
117
	}
118
}
119