SessionManager::setFlashMessage()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 16
rs 9.7333
c 0
b 0
f 0
cc 3
nc 3
nop 2
1
<?php
2
3
namespace Faulancer\Session;
4
5
/**
6
 * Class SessionManager | SessionManager.php
7
 *
8
 * @package Faulancer\Session;
9
 * @author Florian Knapp <[email protected]>
10
 */
11
class SessionManager
12
{
13
    /**
14
     * Start session handler
15
     *
16
     * @return void
17
     * @codeCoverageIgnore Covered by php
18
     */
19
    public function startSession()
20
    {
21
        if (!$this->hasSession()) {
22
            session_start();
23
        }
24
    }
25
26
    /**
27
     * Destroy session at all
28
     *
29
     * @return void
30
     */
31
    public function destroySession()
32
    {
33
        if ($this->hasSession()) {
34
            session_destroy();
35
        }
36
    }
37
38
    /**
39
     * Check if session exists
40
     *
41
     * @return bool
42
     */
43
    public function hasSession()
44
    {
45
        if (!empty(session_id())) {
46
            return true;
47
        }
48
49
        return false;
50
    }
51
52
    /**
53
     * Set session key with value
54
     *
55
     * @param string $key
56
     * @param mixed $value
57
     */
58
    public function set(string $key, $value)
59
    {
60
        $_SESSION[$key] = $value;
61
    }
62
63
    /**
64
     * Get session value by key
65
     *
66
     * @param string $key
67
     * @return mixed
68
     */
69
    public function get(string $key)
70
    {
71
        if (!isset($_SESSION[$key])) {
72
            return null;
73
        }
74
75
        return $_SESSION[$key];
76
    }
77
78
    /**
79
     * Delete session value by key
80
     *
81
     * @param string $key
82
     * @return bool
83
     */
84
    public function delete(string $key)
85
    {
86
        if (!isset($_SESSION[$key])) {
87
            return false;
88
        }
89
90
        unset($_SESSION[$key]);
91
92
        return true;
93
    }
94
95
    /**
96
     * Check if session key exists
97
     *
98
     * @param string $key
99
     * @return bool
100
     */
101
    public function has(string $key)
102
    {
103
        if (empty($_SESSION[$key])) {
104
            return false;
105
        }
106
107
        return true;
108
    }
109
110
    /**
111
     * Check if flash message key exists
112
     *
113
     * @param string $key
114
     * @return bool
115
     */
116
    public function hasFlashMessage(string $key)
117
    {
118
        return isset($_SESSION['flashMessage'][$key]) ? true : false;
119
    }
120
121
    /**
122
     * Set flash message value by key
123
     *
124
     * @param string|array      $key
125
     * @param null|string|array $value
126
     * @return bool
127
     */
128
    public function setFlashMessage($key, $value = null)
129
    {
130
        if (is_array($key)) {
131
132
            foreach ($key AS $k => $val) {
133
                $_SESSION['flashMessage'][$k] = $val;
134
            }
135
136
            return true;
137
138
        }
139
140
        $_SESSION['flashMessage'][$key] = $value;
141
142
        return true;
143
    }
144
145
    /**
146
     * Get flash message value by key
147
     *
148
     * @param string $key
149
     * @return mixed
150
     */
151
    public function getFlashMessage(string $key)
152
    {
153
        if (!isset($_SESSION['flashMessage'][$key])) {
154
            return null;
155
        }
156
157
        $result = $_SESSION['flashMessage'][$key];
158
159
        unset($_SESSION['flashMessage'][$key]);
160
161
        return $result;
162
    }
163
164
}