Session
如果想要启用 Session,需要在配置文件中进行设置。
在服务器配置文件中:
其中每一种存储方式还有特别的配置项,请看下文。
'SessionFile' => [
]
]
Redis
'beans' => [
'SessionRedis' => [
// Redis连接池名称
'poolName' => '',
// Redis中存储的key前缀,可以用于多系统session的分离
// 'keyPrefix' => 'imi.',
]
根据你选用的存储驱动类,配置在对应的节里,下面以文件驱动演示
可以选用的序列化类:
PHP序列化:\Imi\Util\Format\PhpSerialize::class
PHP Session 序列化:\Imi\Util\Format\PhpSession::class
(兼容 php-fpm 默认的 Session 存储格式)
引入 Session 类
use Imi\Server\Session\Session;
// 获取值
Session::get('aaa');
// 获取值,如果不存在则返回默认值
// 获取$session['a']['b']的值
Session::get('a.b');
// 获取$session[前缀]['aaa']的值,前缀在配置文件中设置
写入
删除
Session::delete($name)
Session::once($name, $default = false)
清空
自定义 Session ID 获取方式
config.php:
[
'beans' => [
\Imi\Server\Session\Middleware\HttpSessionMiddleware::class => [
'sessionIdHandler' => function(\Imi\Server\Http\Message\Request $request){
// 举例,比如希望从 header 中获取
return $request->getHeaderLine('X-Session-ID');
},
],