###*注意事项*
* 本session类是一个封装的session操作类,不是处理类
* 处理类暂时只有file,且所有处理操作由处理类完成
* 每次使用时注意init().或者你能保证每次使用完后init();
* 当然,你也可以直接使用原生的session系列函数.
* 只是个beta -2.0(注意是负)版本,出了问题概不负责
###*配置*
* * * * *
config目录下session.config中配置
~~~
session_config = [
//处理器
'handler' => 'File',
//前缀
'prefix' => 'sess_',
//session名称
'name' => 'CORE_SESSION',
//驱动配置
'handlers_config' => [
'File' => [
//储存位置
'path' => session储存位置默认为/storage/session
//扩展名
'extension' => '.session',
],
];
~~~
###*方法*
* * * * *
**1. 获得**
\msqphp\core\session\Session::getInstance();
* * * * *
**2. session指针操作**
~~~
//初始化操作
$session->init() : self
//设置键
$session->key(string $key) : self
//设置键前缀
$session->prefix(string $prefix) : self
//设置键值
$session->value( $value) : self
~~~
* * * * *
**3. session指针对应操作方法**
~~~
//是否存在
$session->exists() : bool
//得到对应值
$session->get() : miexd
//赋值
$session->set() : void
//删除
$session->delete() : void
~~~
* * * * *
**4. session通用方法**
~~~
//清空session
$session->clear() : void;
//开启session(init后则不必调用)
$session->start() : void;
//关闭session
$session->close() : void;
~~~
###*使用*
* * * * *
~~~
/**
* @example
*/
//初始化,设置操作键为 test
$session = $this->session->init()->key('test');
//如果session中test键存在
if ($session->exists()) {
//得到对应信息
$info = $session->get();
} else {
//不存在,获得信息,并保存
$info = getInfo() //代码
$session->value($info)->set();
}
~~~
* 例2:
~~~
/**
* @example 初始化,设置操作键为 test 值为test,并设置
*/
$session = $this->session->init()->key('test')->value('test')->set();
~~~
###*非控制器下使用*
* * * * *
**\msqphp\core\session\Session::getInstance();**
获得本对象,使用方法同上;
###*扩展*
* * * * *
1. 在library/msqphp/framework/core/session/handlers/下创建自定义session处理类
1. 命名空间为msqphp\core\session\handlers.(不需要在composer下注册)
1. 继承\SessionHandlerInterface(函数参数无法标量,除构造函数)
1. 构造函数接受一个配置数组,参数在session配置中配置
1. 按照session类正常使用方法使用
~~~
//例
<?php declare(strict_types = 1);
/**
* SessionHandlerInterface 例, 实际上直接实现函数\SessionHandlerInterface
* 但是由于个坑, php 7.0 函数标量无法注册, 请按无处理
*/
Interface SessionHandlerInterface
{
public function __construct(array $config);
public function close () : bool;
public function destroy ( string $session_id ) : bool;
public function gc ( int $maxlifetime ) : bool;
public function open ( string $save_path , string $name ) : bool;
public function read ( string $session_id ) : string;
public function write ( string $session_id , string $session_data ) : bool;
}
~~~
- 序言
- 框架
- 框架获取
- 框架安装
- 应用结构
- 框架结构
- 应用目录结构
- 框架流程
- 命名规范
- 核心思想
- 扩展
- 类组装
- 框架基类
- Arr
- Arr扩展函数
- Date基类
- Dir
- Dir基类扩展函数
- Dom基类
- File基类
- Str基类
- Str随机字符
- Str操作函数
- Str随机创建
- Html基类
- Header基类
- Filter基类
- 框架核心
- 路由
- 路由信息
- 路由安装样本
- 路由逻辑原理
- 路由方法匹配
- 路由分组
- 路由构建
- 路由限制
- 路由规则
- 路由多语,多主题
- 路由常量
- 路由扩展
- 路由例
- 路由真静态使用
- 智能加载
- Response基类
- 定时任务
- 框架主类
- 控制器
- model
- model样本
- model使用
- view
- view路径
- view方法
- view配置
- view使用
- view真静态
- view例
- view多主题
- 模版引擎
- 模版引擎之单句解析
- 模版引擎之foreach解析
- cache
- cache注意事项
- cache配置
- cache方法
- cache使用
- cache扩展
- cache处理类File配置
- cache处理类Apc,Apcu配置
- cache处理类memcache,memcached配置
- cookie
- session
- 框架扩展
- Upload类
- 测试
- 测试流程
- 测试文件编写
- 测试文件例-数组篇
- 测试类函数
- 测试类使用
- 测试注意事项
- 常用功能
- 读码须知
- 个人技巧或习惯
- 万能get,call,callStatic
- &&和||
- 变量值交换
- trait拼接
- 多语支持