溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Yii 2 —— session

發(fā)布時間:2020-08-04 08:57:45 來源:網絡 閱讀:756 作者:tywali 欄目:開發(fā)技術

1.1  session

Web應用中,session的重要性毋庸置疑。Yii 2中,使用Session類來管理session。

1.1.1  session數(shù)據(jù)加載

當用戶登錄以后,Yii 2會調用到web\User->renewAuthStatus(),在這里調用到session->get()函數(shù)時,在session->get()函數(shù)內部調用了Session->open(),將session數(shù)據(jù)加載進來。

1.1.2  session存儲

Yii 2默認使用php.ini中的配置參數(shù):

session.save_handler = files

;session.save_path = "/tmp"

 

也就是說默認將session信息保存到文件,如果php.ini中沒有設置session.save_path的話,默認存儲路徑就是“C:\Users\當前用戶\AppData\Local\Temp”。

1.1.3  自定義session存儲方式

有些系統(tǒng)為了更好的管理session數(shù)據(jù),會將其保存到數(shù)據(jù)庫里,則可以通過繼承Session類,并進行如下處理:

1、在子類的getUseCustomStorage()返回true,表示使用自定義存儲方式;

2、在子類實現(xiàn)如下接口:openSession(),closeSession(), readSession(), writeSession(), destroySession() and gcSession();

這些接口的含義很清楚,一看函數(shù)名就知道了。

1.1.4  Session類配置

默認$app->session所指向的Session類實例,是在web\Application.php中的coreComponents()函數(shù)配置的:

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節(jié)點下,參考上述代碼配置自己的session類。


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

yii
AI