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. Java I/O系统学习系列三:I/O流的典型使用方式

    尽管可以通过不同的方式组合IO流类,但我们可能也就只用到其中的几种组合.下面的例子可以作为典型的IO用法的基本参考.在这些示例中,异常处理都被简化为将异常传递给控制台,但是这只有在小型示例和工具中才适 ...

  2. logger.info占位符的使用

    {}表示占位符,使用方法如下: package org.pine.controller; import javax.annotation.Resource; import org.pine.servi ...

  3. three 3D实例学习

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  4. c# 读数据库二进制流到图片

    public Bitmap PictureShow(string connectionString, string opName, string productType)        {       ...

  5. Android源码分析(十二)-----Android源码中如何自定义TextView实现滚动效果

    一:如何自定义TextView实现滚动效果 继承TextView基类 重写构造方法 修改isFocused()方法,获取焦点. /* * Copyright (C) 2015 The Android ...

  6. Linux服务管理之SSH

    Linux服务SSH ssh服务: 管理服务器的方式:                      本地管理类   (安装系统,故障修复)           SHH远程连接方式            ...

  7. hexo 搜索功能

    搜索功能真心好用,当文章多起来的时候,标签提供的作用已经很少了,只能简单索引,搜索却能精确查找,这里我用的依旧是最简单的本地站内搜索. 安装插件 npm install hexo-generator- ...

  8. Kibana 的 docker 镜像使用

    1.dockhub镜像网址:https://hub.docker.com/_/kibana 2.下载镜像: docker pull kibana:7.4.0 3.创建容器(Kibana 默认的端口为5 ...

  9. ReSharper安装

    ReSharper是一个JetBrains公司出品的著名的代码生成工具,其能帮助Microsoft Visual Studio成为一个更佳的IDE.它包括一系列丰富的能大大增加C#和Visual Ba ...

  10. adb 命令之push pull

    C:\Users\ceshi>adb pull /storage/emulated/legacy/00001.vcf D:/E:\eclipse\Demo1>adb push E:\ecl ...