Yii2 session的使用方法(1)
yii2打开session use yii\web\Session; $session = Yii::$app->session; // check if a session is already open if ($session->isActive) ... // open a session $session->open(); // close a session $session->close(); // destroys all data registered to a session. $session->destroy(); 设置session $session = Yii::$app->session; $session->set('user_id', '1234'); //OR $session['user_id'] = '1234'; //OR $_SESSION['user_id'] = '1234'; 读取session $session = Yii::$app->session; $user_id = $session->get('user_id'); //OR $user_id = $session['user_id']; //OR $user_id = isset($_SESSION['user_id']) ? $_SESSION['user_id'] : null; 销毁session $session = Yii::$app->session; $session->remove('user_id'); //OR unset($session['user_id']); //OR unset($_SESSION['user_id']); 数组session的读取与设置 $session = Yii::$app->session; $session['user'] = [ 'id' => 1, 'username' => 'yiiuser', ]; echo $session['user']['id']; echo $session['user']['username']; $session['user.id'] = 1; $session['user.username'] = 'yiiuser'; 官网上的用法 首先,在Yii框架中,你不需要像标准PHP代码那样使用session_start(), 在 Yii 框架中,autoStart 属性缺省被设置为true,所以, 虽然没有使用 session_start(),你仍然可以使用 $_SESSION 全局变量,但最好使用 Yii框架封装的 Yii::app->session: 设置session变量:Yii::app()->session['var']='value'; 使用: echo Yii::app()->session['var']; 移除:unset(Yii::app()->session['var']); 更为复杂一点的使用时如何配置你的session 配置项可设在 protected/config/main.php的components中: 'session'=>array( 'autoStart'=>false(/true), 'sessionName'=>'Site Access', 'cookieMode'=>'only', 'savePath'='/path/to/new/directory', ), 将session保持在数据库的设置: 'session' => array ( 'class' => 'system.web.CDbHttpSession', 'connectionID' => 'db', 'sessionTableName' => 'actual_table_name', ), 好,还有什么呢?对了,为了调试,有时需要知道当前用户的session ID, 该值就在 Yii::app()->session->sessionID 中。 最后,当用户退出登录(logout),你需要消除痕迹,可使用: Yii::app()->session->clear() 移去所有session变量,然后,调用 Yii::app()->session->destroy() 移去存储在服务器端的数据。
起点在哪,或许选择不了。重要的是,你追求的终点在哪!