/
session.php
38 lines (38 loc) · 956 Bytes
/
session.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
// singleton wrapper class for session
class KidSession {
// instance static field for singleton object
private static $instance;
// static session id
private static $id;
// private constructor according to singleton pattern
private function __construct() {
session_start();
self::$id = session_id();
}
// private clone according to singleton pattern
private function __clone() {}
// get session instance avoiding creation if already exists
public static function getInstance() {
if(!isset(self::$instance)) {
self::$instance = new KidSession();
}
return self::$instance;
}
// destroy session instance
public function destroy() {
foreach ($_SESSION as $var => $val) {
$_SESSION[$var] = null;
}
session_destroy();
}
// get requested variable
public function __get($var) {
return $_SESSION[$var];
}
// set variable into session instance
public function __set($var, $val) {
$_SESSION[$var] = $val;
}
}
?>