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