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类。

时间: 2024-09-28 22:55:03

Yii 2 —— session的相关文章

yii cookie ,session 操作

一,在Yii中使用session 1,CHttpSession 与原生态php5的session使用差别是,php5使用session_start();$_session['key'] = $value; 在yii中,session已经被封装. To start the session, call open(); To complete and send out session data, call close(); To destroy the session, call destroy().

Yii操作session方法总结

设置session变量: Yii::app()->session['var']='value'; 使用session: echo Yii::app()->session['var']; 移除session: unset(Yii::app()->session['var']); 移去所有session变量: Yii::app()->session->clear() 移去存储在服务器端的数据: Yii::app()->session->destroy()

yii 之 session

在 Yii框架中使用session 的笔记: 首先,在Yii框架中,你不需要像标准PHP代码那样使用session_start(),在Yii框架中,autoStart 属性缺省被设置为true,所以,虽然没有使用session_start(),你仍然可以使用$_SESSION全局变量,但最好使用Yii框架封装的Yii::app->session: 设置session变量:Yii::app()->session['var']='value';使用: echo Yii::app()->ses

yii使用session和cookie

在Yii中使用session /***** 方式一.实例添加 *****/ $session=new CHttpSession; $session->open(); $value1=$session['name1']; /***** 方式二.直接调用应用添加 *****/ Yii::app()->session->add('name','foobar'); Yii::app()->session->add('name2','foobar'); Yii::app()->s

Yii框架 session(转)

本文简述了Yii框架中使用session的方法,具体步骤如下: 一.与标准php代码的区别: 在Yii框架中,你不需要像标准PHP代码那样使用session_start(),在Yii框架中,autoStart 属性缺省被设置为true,所以,虽然没有使用session_start(),你仍然可以使用$_SESSION全局变量,但最好使用Yii框架封装的Yii::app->session 设置session变量 Yii::app()->session['var']='value'; 使用sess

Yii 的session 实现返回上上页面

学习session的页面:http://www.yiichina.com/doc/guide/2.0/runtime-sessions-cookies 关键摘要: $session = Yii::$app->session; // 检查session是否开启 if ($session->isActive) ... // 开启session $session->open(); // 关闭session $session->close(); // 销毁session中所有已注册的数据

yii关闭session

'user' => [            'identityClass' => 'app\models\User',            'enableAutoLogin' => false,//disable the cookie login        ],        //disable session        'session' => array (            'autoStart' => false,            'cookie

YII中的session和cookie

session的使用 存储数据 Yii::app()->session["名"] = 值; 取数据 $变量 = Yii::app()->session["名"]; 销毁一个session变量值 unset(Yii::app()->session["名"]); 清除所有session变量值 Yii::app()->session->clear(); 销毁服务器的session信息 Yii::app()->sess

关于后盾网yii框架的学习小结(7)--session的使用和redirect等的方法的使用

1.实现后台的登出功能. 登出方法主要两步,一个步骤是调用yii自带的logout方法,然后调用redurect方法跳转到首页 public function actionOut(){ Yii::app()->user->logout(); $this->redirect(array('index')); } 2.在后台模块初始化的时候,增加了这个方法 Yii::app()->setComponents(array( 'user' => array('stateKeyPref