W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
自定義 session 驅(qū)動(dòng)來擴(kuò)展 Laravel 和擴(kuò)展緩存系統(tǒng)一樣簡(jiǎn)單。我們將會(huì)再一次使用 extend 方法來注冊(cè)自定義代碼:
Session::extend('mongo', function($app)
{
// Return implementation of SessionHandlerInterface
});
你應(yīng)該把 session 擴(kuò)展代碼放置在 AppServiceProvider 的 boot 方法里。
要注意我們的自定義緩存驅(qū)動(dòng)應(yīng)該要實(shí)現(xiàn) SessionHandlerInterface 。這個(gè)接口只包含少數(shù)需要實(shí)現(xiàn)的簡(jiǎn)單方法。一個(gè)基本的 MongoDB 實(shí)現(xiàn)會(huì)看起來像這樣:
class MongoHandler implements SessionHandlerInterface {
public function open($savePath, $sessionName) {}
public function close() {}
public function read($sessionId) {}
public function write($sessionId, $data) {}
public function destroy($sessionId) {}
public function gc($lifetime) {}
}
因?yàn)檫@些方法不像緩存的 StoreInterface 一樣容易理解,讓我們快速地看過這些方法做些什么:
當(dāng) SessionHandlerInterface 實(shí)現(xiàn)完成,我們準(zhǔn)備好要用 Session 管理者注冊(cè)它:
Session::extend('mongo', function($app)
{
return new MongoHandler;
});
當(dāng) session 驅(qū)動(dòng)已經(jīng)被注冊(cè),我們可以在 config/session.php 配置文件使用 mongo 驅(qū)動(dòng)。
注意: 記住,如果你寫了個(gè)自定義 session 處理器,請(qǐng)?jiān)?Packagist 分享它!
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: