日韩在线观看-日韩在线成人-日韩在线不卡视频-日韩在线不卡视频-国产精品99-国产精品99

全局變量 (針對 easyswoole/http 在 1.6 ~ 2.0)

swoole 協程當中,我們都知道類似 $_GET$_SESSION 這樣的全局變量是不能安全使用的。原因是協程切換下會帶來數據污染問題。

驚喜

EasySwoolespl 包中,實現了一個 SplContextArray,并在主進程的位置,替換了這些全局變量,使得這些數據的訪問是安全的,并在請求結束后自動清理。從而我們可以在使用一些 FPM 環境下的組件包時沒有影響。

注冊

<?php

namespace EasySwoole\EasySwoole;

use EasySwoole\EasySwoole\AbstractInterface\Event;
use EasySwoole\EasySwoole\Swoole\EventRegister;
use EasySwoole\Http\GlobalParamHook;
use EasySwoole\Session\SessionFileHandler;

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

        // 配置 session,設置 session 數據文件存儲目錄為 EASYSWOOLE_TEMP_DIR
        $handler = new SessionFileHandler(EASYSWOOLE_TEMP_DIR);

        GlobalParamHook::getInstance()->hookDefault();

        // 如果不需要 session 請勿注冊
        GlobalParamHook::getInstance()->hookSession($handler, 'easy_session', 'session_dir');

        // onRequest v3.4.x+
        \EasySwoole\Component\Di::getInstance()->set(\EasySwoole\EasySwoole\SysConst::HTTP_GLOBAL_ON_REQUEST, function (\EasySwoole\Http\Request $request, \EasySwoole\Http\Response $response) {
            // 替換全局變量
            GlobalParamHook::getInstance()->onRequest($request, $response);
        });

        // afterRequest v3.4.x+
        \EasySwoole\Component\Di::getInstance()->set(\EasySwoole\EasySwoole\SysConst::HTTP_GLOBAL_AFTER_REQUEST, function (\EasySwoole\Http\Request $request, \EasySwoole\Http\Response $response) {

        });
    }

    public static function mainServerCreate(EventRegister $register)
    {

    }
}

EasySwoole 3.4.x 版本之前:可在項目根目錄的 EasySwooleEvent.php 中看到 onRequestafterRequest 方法。

事件注冊完畢后,即可使用 $_GET$_COOKIE$_POST$_FILES$_SERVER$_SESSION

使用

<?php

namespace App\HttpController;

use EasySwoole\Http\AbstractInterface\Controller;

class Index extends Controller
{
    function index()
    {
        var_dump($_GET['a']);
        if (isset($_SESSION['b'])) {
            var_dump('last session is ' . $_SESSION['b']);
        }
        $_SESSION['b'] = time();
    }
}

注意

該特性需要 1.6 版本以上的 http 組件庫

"easyswoole/http": "^1.6"
主站蜘蛛池模板: 挠tk| insanitycrew| 汪鹏| 璐·德·拉格| 被抛弃的青春1982| 初三化学试卷| 雨的印记钢琴谱| 红领章电视剧免费播放| 生产时直拍宫口| 新娘大作战angelababy| 饥饿站台豆瓣| 女同性激烈床戏舌吻戏| 陕09j01图集| 杨新鸣| 狂野时代| 暴风前夜 电影| 幼儿园课题研究| 奇梦石| 警察英雄| 我在等你回家剧情介绍| 雾化吸入ppt课件| 李修蒙出生年月| 汪佳辉| 浙江卫视节目表 今晚| 大海中的船歌词歌谱| 金秀贤real| 猛鬼追魂| 掐脖子的视频| 小绿人| 光脚踩| 美女搞黄免费| 在线观看三级视频| 石锐| 尸忆在线观看完整恐怖免费| 李保国电影| 魔界王子免费动漫观看| 中华英雄何润东| 天赐的声音在哪个平台播出| 2025八方来财微信头像| 陷阱:致命的诱惑| 鬼迷心窍 歌词|