1 <?php
2 3 4 5 6 7
8 namespace Cross\Auth;
9
10 use Cross\I\HttpAuthInterface;
11
12 13 14 15 16
17 class SessionAuth implements HttpAuthInterface
18 {
19 20 21 22 23
24 protected $key;
25
26 function __construct($key = '')
27 {
28 if ($key) {
29 $this->key = $key;
30 }
31
32 if (!isset($_SESSION)) {
33 session_start();
34 }
35 }
36
37 38 39 40 41 42 43 44
45 function set($key, $value, $expire = 0)
46 {
47 if (is_array($value)) {
48 $value = json_encode($value);
49 }
50
51 $_SESSION[$key] = $value;
52 return true;
53 }
54
55 56 57 58 59 60 61
62 function get($key, $deCode = false)
63 {
64 if (false !== strpos($key, ':') && $deCode) {
65 list($key, $arrKey) = explode(':', $key);
66 }
67
68 if (!isset($_SESSION[$key])) {
69 return false;
70 }
71
72 $result = $_SESSION[$key];
73 if ($deCode) {
74 $result = json_decode($result, true);
75 if (isset($arrKey) && isset($result[$arrKey])) {
76 return $result[$arrKey];
77 }
78 }
79
80 return $result;
81 }
82 }
83