五月天激情丁香,国产精品2019,国产成人精品亚洲2020,国产精品免费视频一区二区三区,开心久久婷婷综合中文字幕,天堂视频在线观看免费完整版

EasySwoole Session 組件 2.x

由于在 Swoole 協(xié)程下,php 自帶的 session 函數(shù)是不能使用的。為此,EasySwoole 提供了獨立的 session 組件,實現(xiàn) phpsession 功能。

組件要求

  • php: >=7.1.0
  • easyswoole/spl: ^1.3
  • easyswoole/utility: ^1.1
  • easyswoole/component: ^2.1

安裝方法

composer require easyswoole/session=2.x

倉庫地址

easyswoole/session=2.x

基本使用

注冊 session handler

使用 session 前,需要先注冊 session handler。接下來的示例使用的 session handlerEasySwoole 內置的 session handler,開箱即用。

注冊步驟:

修改 EasySwoole 全局的 event 文件(即框架根目錄的 EasySwooleEvent.php 文件),在 mainServerCreateHTTP 的 全局 HTTP_GLOBAL_ON_REQUEST 事件中注冊 session handler

具體實現(xiàn)代碼如下:

<?php

namespace EasySwoole\EasySwoole;

use EasySwoole\Component\Di;
use EasySwoole\EasySwoole\AbstractInterface\Event;
use EasySwoole\EasySwoole\Swoole\EventRegister;
use EasySwoole\Http\Request;
use EasySwoole\Http\Response;
use EasySwoole\Session\Session;
use EasySwoole\Session\SessionFileHandler;

class EasySwooleEvent implements Event
{
    public static function initialize()
    {
        date_default_timezone_set('Asia/Shanghai');

        Di::getInstance()->set(\EasySwoole\EasySwoole\SysConst::HTTP_GLOBAL_ON_REQUEST, function (Request $request, Response $response): bool {
            // TODO: 注冊 HTTP_GLOBAL_ON_REQUEST 回調,相當于原來的 onRequest 事件
            // 獲取客戶端 Cookie 中 easy_session 參數(shù)
            $cookie = $request->getCookieParams('easy_session');
            if (empty($cookie)) {
                $sid = Session::getInstance()->sessionId();
                // 設置客戶端 Cookie 中 easy_session 參數(shù)
                $response->setCookie('easy_session', $sid);
            } else {
                Session::getInstance()->sessionId($cookie);
            }
            return true;
        });

        Di::getInstance()->set(\EasySwoole\EasySwoole\SysConst::HTTP_GLOBAL_AFTER_REQUEST, function (Request $request, Response $response): void {
            // TODO: 注冊 HTTP_GLOBAL_AFTER_REQUEST 回調,相當于原來的 afterRequest 事件
        });
    }

    public static function mainServerCreate(EventRegister $register)
    {
        // 可以自己實現(xiàn)一個標準的 session handler,下面為組件內置實現(xiàn)的 session_handler
        // 基于文件存儲,傳入 EASYSWOOLE_TEMP_DIR 目錄作為 session 數(shù)據(jù)文件存儲位置
        $handler = new SessionFileHandler(EASYSWOOLE_TEMP_DIR);

        // 設置 session 數(shù)據(jù)文件存儲前綴為 'easy_session',session 數(shù)據(jù)文件 savePath 為 EASYSWOOLE_TEMP_DIR
        Session::getInstance($handler, 'easy_session', EASYSWOOLE_TEMP_DIR);
    }
}

EasySwoole 中使用 session

注冊 session handler 之后,我們就可以在 EasySwoole 控制器 的任意位置使用了。

簡單使用示例代碼如下:

<?php

namespace App\HttpController;

use EasySwoole\Http\AbstractInterface\Controller;
use EasySwoole\Session\Session;

class Index extends Controller
{
    public function index()
    {
        if (Session::getInstance()->get('a')) {
            var_dump(Session::getInstance()->get('a'));
        } else {
            Session::getInstance()->set('a', time());
        }
    }

    function des()
    {
        Session::getInstance()->destroy();
    }
}

然后訪問 http://127.0.0.1:9501/index (示例請求地址)就可以進行測試設置 session,訪問 http://127.0.0.1:9501/des (示例請求地址)就可以銷毀 session

主站蜘蛛池模板: 青青草久久伊人 | 国产欧美综合在线 | 成人嫩草影院免费观看 | 精品国产一区二区三区久 | 日韩欧美一区二区三区不卡视频 | 欧美色综合高清免费 | 免费观看a级毛片在线播放 国产福利免费视频 | 国产成人精品亚洲日本在线 | 66精品综合久久久久久久 | 爱啪啪网站 | 成人激情四射网 | 欧美女人性生活视频 | 桃花视频网在线观看免费 | 99久久精品免费看国产交换 | 99视屏| 久久久精| 五月婷婷中文字幕 | 男女视频在线观看网站 | 九九免费视频 | 国产日韩综合 | 国产精品日韩精品 | 激情网站免费 | 久久99精品久久久久久牛牛影视 | 国产女人久久精品 | a级亚洲片精品久久久久久久 | 精品国产九九 | 精品视频 九九九 | 试看120秒非会员体险区一二 | 国产高清久久99 | 伊人精品在线视频 | 日韩小视频在线 | 欧美视频在线第一页 | 久久亚洲aⅴ精品网站婷婷 久久鸭综合久久国产 | 日韩欧美在线观看综合网另类 | 色y情视频免费看 | 涩五月婷婷 | 国产伦精品一区二区三区视频金莲 | 男女免费视频网站 | 免费色视频 | 国产高清久久99 | 色戒印度版 |