PHP程序员小白到大牛集训(12期免息)
作者信息

coldplay.xixi

好好学习 天天向上

最近文章
重点详解Java类和对象3136
浅析php简单操作mysql锁机制5170
php无法加载mysql怎么办3510
视频教程分类
推荐视频教程
  • php程序员小白到大牛三个月集训php程序员小白到大牛三个月集训
  • Laravel 9 学习正当时—保姆级教程,想学不会都难!Laravel 9 学习正当时—保姆级教程,想学不会都难!
  • 千万级数据并发解决方案(理论+实战)千万级数据并发解决方案(理论+实战)
  • Laravel基础与实战(模块化)Laravel基础与实战(模块化)
  • UNI-APP开发(仿饿了么)UNI-APP开发(仿饿了么)
  • 首页 >php框架 >Swoole > 正文

    介绍swoole http_server 适配 thinkphp 5.1

    转载2021-03-23 11:31:421510 关注公众号:每天精选资源文章推送

    1、环境说明

    • thinkphp 5.1
    • swoole 4.0.2
    • 阿里云CentOS 7.4

    推荐(免费):swoole

    2、开发

    1.在tp根目录下新建一个server目录,用来存放swool_http_server。

    http_server.php 代码代码

    <?php
    /**
     * Created by PhpStorm.
     * Date: 2018/7/22
     * Time: 15:12
     */
    $http = new swoole_http_server('0.0.0.0', 8811);
    
    //set函数用于设置swoole_server运行时的各项参数
    $http->set([
        'worker_num'=>4 ,//worker process num
    ]);
    
    //此事件在Worker进程/Task进程启动时发生
    $http->on('WorkerStart',function (swoole_server $server, $worker_id){
        // 定义应用目录
        define('APP_PATH', __DIR__ . '/../application/');
        // 加载基础文件 ThinkPHP 引导文件
        require __DIR__ . '/../thinkphp/base.php';
    
    });
    
    $http->on('request', function ($request, $response){
    
        if($request->server){
            foreach ($request->server as $key => $val){
                $_SERVER[strtoupper($key)] = $val;
            }
        }
        if($request->header){
            foreach ($request->header as $key => $val){
                $_SERVER[strtoupper($key)] = $val;
            }
        }
        if($request->get){
            foreach ($request->get as $key => $val){
                $_GET[$key] = $val;
            }
        }
        if($request->post){
            foreach ($request->post as $key => $val){
                $_POST[$key] = $val;
            }
        }
        ob_start();
        try{
            // thinkphp 执行应用并响应
            think\Container::get('app')
                ->run()
                ->send();
        }catch (\Exception $exception){
            // todo
        }
        $res = ob_get_contents();
        ob_end_clean();
        $response->end($res);
    });
    
    $http->start();

    2. 进入service目录,执行 php http_server.php 启动swoole_http_server

    没有报错,启动成功。

    3. 在index 新建一个测试方法,访问服务器8811端口

    3、问题

    .swoole 不会注销$_GET $_POST .... 超全局变量

    以上就是介绍swoole http_server 适配 thinkphp 5.1的详细内容,更多请关注php中文网其它相关文章!

    20期PHP线上班

    声明:本文转载于:CSDN,如有侵犯,请联系admin@php.cn删除

    相关文章

    相关视频


    专题推荐