1.準備工作 安裝 Laravel laravel new laravel-swoole 本人使用 valet 進行開發,可以使用 laravel-swoole.test 進行訪問 2.引入 swoole 具體的 swoole 安裝請移步官網進行下載,編譯,安裝,這裡不多闡述了。 1. 在項目更目錄 ...
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等多個知識點高級進階乾貨需要的可以免費分享給大家,需要的可以加入我的官方群點擊此處。