Native::loadSession()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 2
c 1
b 0
f 0
nc 2
nop 0
dl 0
loc 4
ccs 2
cts 2
cp 1
crap 2
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Suricate\Session;
6
7
use Suricate\Session;
8
9 1
class Native extends Session
10
{
11 1
    public function __construct()
12
    {
13 1
        parent::__construct();
14 1
        if (php_sapi_name() === 'cli') {
15
            return;
16 4
        }
17
        $this->loadSession();
18 4
    }
19 2
20
    private function loadSession()
21 4
    {
22
        if (session_id() === '') {
23 1
            session_start();
24
        }
25 1
    }
26
27
    /**
28 1
     * Get current session id
29
     *
30 1
     * @return string
31
     */
32
    public function getId()
33 4
    {
34
        return session_id();
35 4
    }
36 4
37 4
    public function regenerate()
38
    {
39 4
        return session_regenerate_id();
40
    }
41 4
42
    public function read($key)
43 4
    {
44 4
        $this->loadSession();
45 4
        if (isset($_SESSION[$key])) {
46
            return $_SESSION[$key];
47 4
        }
48
    }
49 4
50 4
    public function write($key, $data)
51 4
    {
52
        $this->loadSession();
53 1
        $_SESSION[$key] = $data;
54
    }
55 1
56 1
    public function destroy($key)
57
    {
58
        $this->loadSession();
59
        unset($_SESSION[$key]);
60
    }
61
62
    /**
63
     * Close current session
64
     *
65
     * @return void
66
     */
67
    public function close()
68
    {
69
        session_destroy();
70
    }
71
}
72