mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-07 23:22:48 +08:00
改进Session类
This commit is contained in:
@@ -17,6 +17,7 @@ use think\exception\ClassNotFoundException;
|
|||||||
class Session
|
class Session
|
||||||
{
|
{
|
||||||
protected static $prefix = '';
|
protected static $prefix = '';
|
||||||
|
protected static $init = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置或者获取session作用域(前缀)
|
* 设置或者获取session作用域(前缀)
|
||||||
@@ -98,6 +99,22 @@ class Session
|
|||||||
}
|
}
|
||||||
if ($isDoStart) {
|
if ($isDoStart) {
|
||||||
session_start();
|
session_start();
|
||||||
|
self::$init = true;
|
||||||
|
} else {
|
||||||
|
self::$init = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* session自动启动或者初始化
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public static function boot()
|
||||||
|
{
|
||||||
|
if (is_null(self::$init)) {
|
||||||
|
self::init();
|
||||||
|
} elseif (false === self::$init) {
|
||||||
|
session_start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -110,7 +127,8 @@ class Session
|
|||||||
*/
|
*/
|
||||||
public static function set($name, $value = '', $prefix = null)
|
public static function set($name, $value = '', $prefix = null)
|
||||||
{
|
{
|
||||||
!isset($_SESSION) && self::init();
|
empty(self::$init) && self::boot();
|
||||||
|
|
||||||
$prefix = !is_null($prefix) ? $prefix : self::$prefix;
|
$prefix = !is_null($prefix) ? $prefix : self::$prefix;
|
||||||
if (strpos($name, '.')) {
|
if (strpos($name, '.')) {
|
||||||
// 二维数组赋值
|
// 二维数组赋值
|
||||||
@@ -135,7 +153,7 @@ class Session
|
|||||||
*/
|
*/
|
||||||
public static function get($name = '', $prefix = null)
|
public static function get($name = '', $prefix = null)
|
||||||
{
|
{
|
||||||
!isset($_SESSION) && self::init();
|
empty(self::$init) && self::boot();
|
||||||
$prefix = !is_null($prefix) ? $prefix : self::$prefix;
|
$prefix = !is_null($prefix) ? $prefix : self::$prefix;
|
||||||
if ('' == $name) {
|
if ('' == $name) {
|
||||||
// 获取全部的session
|
// 获取全部的session
|
||||||
@@ -167,7 +185,7 @@ class Session
|
|||||||
*/
|
*/
|
||||||
public static function delete($name, $prefix = null)
|
public static function delete($name, $prefix = null)
|
||||||
{
|
{
|
||||||
!isset($_SESSION) && self::init();
|
empty(self::$init) && self::boot();
|
||||||
$prefix = !is_null($prefix) ? $prefix : self::$prefix;
|
$prefix = !is_null($prefix) ? $prefix : self::$prefix;
|
||||||
if (strpos($name, '.')) {
|
if (strpos($name, '.')) {
|
||||||
list($name1, $name2) = explode('.', $name);
|
list($name1, $name2) = explode('.', $name);
|
||||||
@@ -192,7 +210,7 @@ class Session
|
|||||||
*/
|
*/
|
||||||
public static function clear($prefix = null)
|
public static function clear($prefix = null)
|
||||||
{
|
{
|
||||||
!isset($_SESSION) && self::init();
|
empty(self::$init) && self::boot();
|
||||||
$prefix = !is_null($prefix) ? $prefix : self::$prefix;
|
$prefix = !is_null($prefix) ? $prefix : self::$prefix;
|
||||||
if ($prefix) {
|
if ($prefix) {
|
||||||
unset($_SESSION[$prefix]);
|
unset($_SESSION[$prefix]);
|
||||||
@@ -209,7 +227,7 @@ class Session
|
|||||||
*/
|
*/
|
||||||
public static function has($name, $prefix = null)
|
public static function has($name, $prefix = null)
|
||||||
{
|
{
|
||||||
!isset($_SESSION) && self::init();
|
empty(self::$init) && self::boot();
|
||||||
$prefix = !is_null($prefix) ? $prefix : self::$prefix;
|
$prefix = !is_null($prefix) ? $prefix : self::$prefix;
|
||||||
if (strpos($name, '.')) {
|
if (strpos($name, '.')) {
|
||||||
// 支持数组
|
// 支持数组
|
||||||
@@ -240,6 +258,7 @@ class Session
|
|||||||
}
|
}
|
||||||
session_unset();
|
session_unset();
|
||||||
session_destroy();
|
session_destroy();
|
||||||
|
self::$init = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -260,5 +279,6 @@ class Session
|
|||||||
{
|
{
|
||||||
// 暂停session
|
// 暂停session
|
||||||
session_write_close();
|
session_write_close();
|
||||||
|
self::$init = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user