Passed
Push — master ( 963c04...636654 )
by Jean-Christophe
08:21
created

PhpSession   A

Complexity

Total Complexity 14

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Test Coverage

Coverage 83.33%

Importance

Changes 0
Metric Value
wmc 14
eloc 21
dl 0
loc 49
ccs 25
cts 30
cp 0.8333
rs 10
c 0
b 0
f 0

8 Methods

Rating   Name   Duplication   Size   Complexity  
A delete() 0 2 1
A terminate() 0 11 3
A start() 0 9 5
A set() 0 2 1
A get() 0 2 1
A exists() 0 2 1
A isStarted() 0 2 1
A getAll() 0 2 1
1
<?php
2
3
namespace Ubiquity\utils\http\session;
4
5
/**
6
 * Default php session.
7
 * Ubiquity\utils\http\session$PhpSession
8
 * This class is part of Ubiquity
9
 *
10
 * @author jcheron <[email protected]>
11
 * @version 1.0.0
12
 *
13
 */
14
class PhpSession extends AbstractSession {
15
16 12
	public function set($key, $value) {
17 12
		return $_SESSION [$key] = $value;
18
	}
19
20 10
	public function get($key, $default = null) {
21 10
		return $_SESSION [$key] ?? $default;
22
	}
23
24 58
	public function start($name = null) {
25 58
		if (! $this->isStarted ()) {
26 35
			if (isset ( $name ) && $name !== "") {
27
				$this->name = $name;
28
			}
29 35
			if (isset ( $this->name )) {
30
				\session_name ( $this->name );
31
			}
32 35
			\session_start ();
33
		}
34 58
	}
35
36 2
	public function terminate() {
37 2
		if (! $this->isStarted ())
38
			return;
39 2
		$this->start ();
40 2
		$_SESSION = array ();
41
42 2
		if (\ini_get ( "session.use_cookies" )) {
43 2
			$params = \session_get_cookie_params ();
44 2
			\setcookie ( \session_name (), '', \time () - 42000, $params ["path"], $params ["domain"], $params ["secure"], $params ["httponly"] );
45
		}
46 2
		\session_destroy ();
47 2
	}
48
49 58
	public function isStarted() {
50 58
		return session_status () == PHP_SESSION_ACTIVE;
51
	}
52
53 18
	public function exists($key) {
54 18
		return isset ( $_SESSION [$key] );
55
	}
56
57
	public function getAll() {
58
		return $_SESSION;
59
	}
60
61 2
	public function delete($key) {
62 2
		unset ( $_SESSION [$key] );
63 2
	}
64
}
65
66