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');
   

链接:https://pan.baidu.com/s/1v5gm7n0L7TGyejCmQrMh2g 提取码:x2p5

免费分享,但是X度限制严重,如若链接失效点击链接或搜索加群 群号518475424

在控制器添加方法:

/**

     * 测试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教程的更多相关文章

  1. Laravel 5.2 教程 - 队列

    一.简介 Laravel 队列组件提供一个统一的 API 集成了许多不同的队列服务,队列允许你延后执行一个耗时的任务,例如延后至指定的时间才发送邮件,进而大幅的加快了应用程序处理请求的速度. 由于本例 ...

  2. Laravel通过Swoole提升性能

    1.安装配置laravel 1.1.composer下载laravel composer create-project --prefer-dist laravel/laravel blog " ...

  3. Spring+SpringMvc+Mybatis框架集成搭建教程

    一.背景 最近有很多同学由于没有过SSM(Spring+SpringMvc+Mybatis , 以下简称SSM)框架的搭建的经历,所以在自己搭建SSM框架集成的时候,出现了这样或者那样的问题,很是苦恼 ...

  4. Teamcity+SVN+VisualStudio在持续集成简明教程

    Teamcity+SVN+VisualStudio持续集成 简明教程 一.写在最前: 1.      各组件版本号例如以下: Teamcity(简称tc)版本号:8.1.4 SVN版本号:Tortoi ...

  5. Laravel 5.2 教程 - 文件上传

    一.简介 Laravel 有很棒的文件系统抽象层,是基于 Frank de Jonge 的 Flysystem 扩展包. Laravel 集成的 Flysystem 提供了简单的接口,可以操作本地端空 ...

  6. 2016 版 Laravel 系列入门教程

    2016 版 Laravel 系列入门教程 (1) - (5) http://www.golaravel.com/post/2016-ban-laravel-xi-lie-ru-men-jiao-ch ...

  7. laravel 整合 swoole ,并简单 ab 测试对比性能以及在 PHPstorm 中利用debug调试配置swoole服务中的PHP代码

    安装PHP 的 swoole 扩展 及 安装 laravel,就不描述了 整合 laravel 和 swoole 用了这个轮子,侵入性很小,一行代码搞定,推荐一下,今天刚用,不能预测未来是否会遇见坑 ...

  8. Laravel 集成 JPush 极光推送指北

    我是一个 Laravel 小白,我是一个 Laravel 小白,我是一个 Laravel 小白(默念三遍再往下读,如果非小白就不用看了). Laravel 使用 Composer 来管理代码依赖.所以 ...

  9. SpringBoot系列之集成Mybatis教程

    SpringBoot系列之集成Mybatis教程 环境准备:IDEA + maven 本博客通过例子的方式,介绍Springboot集成Mybatis的两种方法,一种是通过注解实现,一种是通过xml的 ...

随机推荐

  1. 2 java并行基础

    我们认真研究如何才能构建一个正确.健壮并且高效的并行系统. 进程与线程 进程(Process):是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础 ...

  2. element ui DatePicker 禁用当前日之前的时间

    <el-date-picker style="width:195px" value-format="yyyy-MM-dd" v-model="f ...

  3. Gin-Go学习笔记一:Hello World

    Hello World 1>     Gin是一个golang的微框架,封装比较优雅,API友好.具有快速灵活,容错方便等特点.Gin自身的net/http足够简单,性能也非常不错. 2> ...

  4. c# 开发+MySql数据库

    今天就一个客户端的任务:1.把Excel文件转成特定格式插入到数据库中:2.查出该文件,并且导出Excel文件:3.如果插入数据错误,则把刚插入的数据删除掉.感觉比较简单,可是,墨迹了一天呀....总 ...

  5. 剑指:包含min函数的栈(min栈)

    题目描述 设计一个支持 push,pop,top 等操作并且可以在 O(1) 时间内检索出最小元素的堆栈. push(x)–将元素x插入栈中 pop()–移除栈顶元素 top()–得到栈顶元素 get ...

  6. I still have a dream!

    当聊起梦想时,哥总会说别跟我谈梦想,我已经戒了!现在的我对梦想并不感冒,总是冷眼旁观很多事情,那些经不起时间检验的事和人,总会消散在历史云烟中,若干年后,又有谁还会记得那些遗弃在历史尘埃中,琐碎的芝麻 ...

  7. Java数据类型(1)

    基本数据类型 A.整型 byte:(8位--1个字节 有符号 以二进制补码表示) 范围:-27~27-1 即 -128~127 short:(16位--2个字节 有符号 以二进制补码表示) 范围:-2 ...

  8. HDP 3.1.0 集成 Sqoop2

    HDP 3.1.0 集成 Sqoop2 本文原始地址:https://sitoi.cn/posts/65261.html 环境 由三台主机组成的 HDP 3.1.0 集群 配置好时间同步 步骤 下载 ...

  9. ubuntu无法连接网络

    一,先说一下VMware软件和linux镜像的版本: VMware Workstation 14 Pro ubuntu-14.04.6-desktop-amd64.iso 二,遇到的问题 在第一次安装 ...

  10. Word 2016中公式不能自动斜体的解决方法

    参考资料: 中文版 Office 数学公式默认不是斜体 为什么Word 2007中的公式编辑器字体不能自动倾斜 归纳总结 这个问题自Word 2007开始就存在,直至我目前用的Word 2016都没有 ...