<?php include_once "Reflection.php"; include_once "RequestCookie.php"; class Session { use ReflectionHook; static $active = false; static $lifetime = '+7 days'; static $cookiename = 'session'; static $ready = false; public function __contruct() { session_set_cookie_params(strtotime(static::$lifetime)); session_name(static::$cookiename); Session::$ready = true; } public function staticStart() { session_start(); } public function staticFlush() { session_commit(); } public function staticDestroy() { session_destroy(); } public function staticReset() { session_reset(); } public function staticSet($name, $value) { $_SESSION[$name] = $value; } public function staticGet($name) { return $_SESSION[$name]; } public function staticDelete($name) { unset($_SESSION[$name]); } public function staticHas($name) { return isset($_SESSION[$name]); } public function staticAdd($name, $item) { if(!Session::has($name)) { $_SESSION[$name] = []; } $_SESSION[$name][] = $item; } public function staticPop($name, $item) { if(!$this->has($name)) { $_SESSION[$name] = []; } return array_pop($_SESSION[$name]); } public function staticShift($name, $item) { if(!!$this->has($name)) { $_SESSION[$name] = []; } return array_shift($_SESSION[$name]); } public function staticUnshift($name, $item) { if(!!$this->has($name)) { $_SESSION[$name] = []; } $_SESSION[$name] = [ $item, ...$_SESSION[$name] ]; } public function staticMerge($name, $item) { if(!!$this->has($name)) { $_SESSION[$name] = []; } $_SESSION[$name] = [ ...$_SESSION[$name], ...$item ]; } public function staticPath($path) { session_save_path($path); } public function staticStatus() { switch(session_status()) { case PHP_SESSION_ACTIVE:{ return Session::$active = true; } default:{ return Session::$active = false; } } } public function staticInit() { if(!Session::$ready) { $this->__contruct(); } if(!$this->staticStatus()) { $this->staticStart(); } } };