Yii 2 —— session

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yii 2 —— session相关的知识,希望对你有一定的参考价值。

1.1  session

Web应用中,session的重要性毋庸置疑。Yii 2中,使用Session类来管理session

1.1.1  session数据加载

当用户登录以后,Yii 2会调用到web\User->renewAuthStatus(),在这里调用到session->get()函数时,在session->get()函数内部调用了Session->open(),将session数据加载进来。

1.1.2  session存储

Yii 2默认使用php.ini中的配置参数:

session.save_handler = files

;session.save_path = "/tmp"

 

也就是说默认将session信息保存到文件,如果php.ini中没有设置session.save_path的话,默认存储路径就是“C:\Users\当前用户\AppData\Local\Temp”。

1.1.3  自定义session存储方式

有些系统为了更好的管理session数据,会将其保存到数据库里,则可以通过继承Session类,并进行如下处理:

1、在子类的getUseCustomStorage()返回true,表示使用自定义存储方式;

2、在子类实现如下接口:openSession(),closeSession(), readSession(), writeSession(), destroySession() and gcSession()

这些接口的含义很清楚,一看函数名就知道了。

1.1.4  Session类配置

默认$app->session所指向的Session类实例,是在web\Application.php中的coreComponents()函数配置的:

public function coreComponents()
 {
    
return array_merge(parent::coreComponents(), [
        
‘request‘ => [‘class‘ => ‘yii\web\Request‘],
        
‘response‘ => [‘class‘ => ‘yii\web\Response‘],
        
‘session‘ => [‘class‘ =>  ‘yii\web\Session‘],
        
‘user‘ => [‘class‘ => ‘yii\web\User‘],
        
‘errorHandler‘ => [‘class‘ => ‘yii\web\ErrorHandler‘],
    
]);
 
}

 

如果想用自己的Session类,则可在main.php中的components节点下,参考上述代码配置自己的session类。


本文出自 “rainman” 博客,请务必保留此出处http://lancelot.blog.51cto.com/393579/1873244

以上是关于Yii 2 —— session的主要内容,如果未能解决你的问题,请参考以下文章

Yii2 yii2mod/yii2-rbac

Yii2 教程 - yii2-redis 扩展详解

Yii2 yii2-imagine的使用

Yii2.0 安装yii2-queue并在Linux启动守护进程监听消息

Yii2 restful接口方式开发,权限控制(yii2-rest-rbac)

windows下yii2安装 AdminLTE和 yii2-admin