首頁  >  文章  >  php框架  >  Laravel整合Swoole教程

Laravel整合Swoole教程

藏色散人
藏色散人轉載
2019-07-17 13:40:064333瀏覽

Laravel整合Swoole教程

1.準備工作

#安裝Laravel

laravel new laravel-swoole

本人使用valet 進行開發,可以使用

laravel-swoole.test

進行存取

2.引入swoole

特定的swoole 安裝請移步官網進行下載,編譯,安裝,這裡不多闡述了。

1. 在專案更目錄建立一個server 資料夾,然後在該資料夾中建立http_server.php 文件,具體的文件內容如下

<?php
$http = new swoole_http_server(&#39;127.0.0.1&#39;, 9501);
$http->set([
    &#39;worker_num&#39; => 8,
    &#39;max_request&#39; => 5000,
//    &#39;document_root&#39; => &#39;/Users/apple/Code/Teacher_Project/swoole_live/resources/live/&#39;,
//    &#39;enable_static_handler&#39; => true,
]);
//工作进程启动
$http->on(&#39;WorkerStart&#39;, function ($serv, $worker_id) {
    //加载index文件的内容
    require __DIR__ . &#39;/../vendor/autoload.php&#39;;
    require_once __DIR__ . &#39;/../bootstrap/app.php&#39;;
});
//监听http请求
$http->on(&#39;request&#39;, function ($request, $response) {
    //server信息
    if (isset($request->server)) {
        foreach ($request->server as $k => $v) {
            $_SERVER[strtoupper($k)] = $v;
        }
    }
    //header头信息
    if (isset($request->header)) {
        foreach ($request->header as $k => $v) {
            $_SERVER[strtoupper($k)] = $v;
        }
    }
    //get请求
    if (isset($request->get)) {
        foreach ($request->get as $k => $v) {
            $_GET[$k] = $v;
        }
    }
    //post请求
    if (isset($request->post)) {
        foreach ($request->post as $k => $v) {
            $_POST[$k] = $v;
        }
    }
    //文件请求
    if (isset($request->files)) {
        foreach ($request->files as $k => $v) {
            $_FILES[$k] = $v;
        }
    }
    //cookies请求
    if (isset($request->cookie)) {
        foreach ($request->cookie as $k => $v) {
            $_COOKIE[$k] = $v;
        }
    }
    ob_start();//启用缓存区
    //加载laravel请求核心模块
    $kernel = app()->make(Illuminate\Contracts\Http\Kernel::class);
    $laravelResponse = $kernel->handle(
        $request = Illuminate\Http\Request::capture()
    );
    $laravelResponse->send();
    $kernel->terminate($request, $laravelResponse);
    $res = ob_get_contents();//获取缓存区的内容
    ob_end_clean();//清除缓存区
    //输出缓存区域的内容
    $response->end($res);
});
$http->start();

在路由文件加入路由:

Route::get(&#39;/test1&#39;, &#39;UsersController@test&#39;);
Route::get(&#39;/test2&#39;,&#39;UsersController@test2&#39;);

在控制器新增方法:

/**
     * 测试1
     * @param Request $request
     * @return string
     */
    public function test(Request $request)
    {
        return view(&#39;test&#39;);#在你的视图文件夹创建test.blade.php
    }
    /**
     * 测试2
     * @param Request $request
     * @return string
     */
    public function test2(Request $request)
    {
        return &#39;Hello World2:&#39; . $request->get(&#39;name&#39;);
    }

3. 啟動swoole

在終端下輸入:

php server/http_server.php

訪問瀏覽器:

http://127.0.0.1:9501/test1
http://127.0.0.1:9501/test2?name=Jelly

對應的結果如下:

訪問test1 路由

Laravel整合Swoole教程

##存取test2路由

Laravel整合Swoole教程

更多Laravel相關技術文章,請造訪

Laravel框架入門教學欄位學習!

以上是Laravel整合Swoole教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:LaravelChen。如有侵權,請聯絡admin@php.cn刪除