qq分分彩app|qq分分彩开奖记录官网

thinkphp5 session的redis方式手動配置問題修復

瀏覽:2336 最后更新:2018-07-19 12:52 分類:驅動 關鍵字: session redis
thinkphp5 在使用redis作為session存儲時,如果在控制器內臨時修改配置項,當set后,會導致無法get的情況,主要是因為驅動內的判斷順序,如果有臨時配置項,將會全部替換原有的confing配置
1. 臨時設置過期時間Session::init(['expire' => 10]);2. 因為session類內判斷問題,session類內的init函數    public static function init(array $config = [])
    {
        if (empty($config)) {
            $config = Config::get('session');
        }
然后導致redis內,產生新的key

如圖,第一行key為不設置臨時配置生成的,第二行為設置臨時配置

不知道大家能不能看明白

修改方法很簡單,將session類內的init函數改為    public static function init(array $config = [])
    {
        if (empty($config)) {
            $config = Config::get('session');
        } else {
            $config = array_merge(Config::get('session'),$config);
        }
即可解決問題,這個問題主要會影響多服務器的seesion基于redis的共享,謝謝,有不明白可以留言
附件覆蓋路徑:\thinkphp\library\think\Session.php
評論( 相關
后面還有條評論,點擊查看>>
qq分分彩app