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('127.0.0.1', 9501);

$http->set([

    'worker_num' => 8,

    'max_request' => 5000,

//    'document_root' => '/Users/apple/Code/Teacher_Project/swoole_live/resources/live/',

//    'enable_static_handler' => true,

]);

//工作進程啟動

$http->on('WorkerStart', function ($serv, $worker_id) {

    //加載index文件的內容

    require __DIR__ . '/../vendor/autoload.php';

    require_once __DIR__ . '/../bootstrap/app.php';

});

//監聽http請求

$http->on('request', 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('/test1', 'UsersController@test');

Route::get('/test2','UsersController@test2');

 

在控制器添加方法:

/**

     * 測試1

     * @param Request $request

     * @return string

     */

    public function test(Request $request)

    {

        return view('test');#在你的視圖文件夾創建test.blade.php

    }

    /**

     * 測試2

     * @param Request $request

     * @return string

     */

    public function test2(Request $request)

    {

        return 'Hello World2:' . $request->get('name');

    }

 

3. 啟動 swoole

在終端下輸入:

php server/http_server.php

 

訪問瀏覽器:

http://127.0.0.1:9501/test1

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

 

對應的結果如下:

訪問 test1 路由

訪問 test2 路由

以上就是Laravel集成Swoole教程的詳細內容

以上內容希望幫助到大家,很多PHPer在進階的時候總會遇到一些問題和瓶頸,業務代碼寫多了沒有方向感,不知道該從那里入手去提升,對此我整理了一些資料,包括但不限於:分布式架構、高可擴展、高性能、高並發、服務器性能調優、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql優化、shell腳本、Docker、微服務、Nginx等多個知識點高級進階干貨需要的可以免費分享給大家,需要的可以加入我的官方群點擊此處

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM