Native   A
last analyzed

Complexity

Total Complexity 11

Size/Duplication

Total Lines 61
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 4
Bugs 0 Features 0
Metric Value
eloc 17
c 4
b 0
f 0
dl 0
loc 61
ccs 28
cts 28
cp 1
rs 10
wmc 11

8 Methods

Rating   Name   Duplication   Size   Complexity  
A regenerate() 0 3 1
A getId() 0 3 1
A loadSession() 0 4 2
A read() 0 5 2
A close() 0 3 1
A write() 0 4 1
A __construct() 0 7 2
A destroy() 0 4 1
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