在Laravel5.6中使用Swoole的协程数据库查询


Posted in PHP onJune 15, 2018

什么是Swoole

直接套用Swoole官网的介绍:PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端。

Swoole官网的文档不够丰富啊,这比较头疼,但大部分的问题都解释了。如果你对Swoole很感兴趣,那么看看这个Swoole入门教程。Swoole提供了多线程、长连接等很多牛逼的功能,把php上升到了一个新的台阶,具体的你可以看看入门教程,本文只限于讨论Laravel和Swoole的结合。

Swoole为了提供服务,必须以CLI模式运行,什么是CLI模式呢?如果你Swoole业务代码是写在一个叫server.php的文件中,那么在命令行下输入php server.php开启。这是比较头疼的事情,因为Laravel框架可不是这样的运转的,那如何能与Laravel结合呢?没错,自定义一条Artisan Command,就这么简单。

强烈推荐在你的laravel项目中,使用 laravel-s 这个包.

composer require "hhxsv5/laravel-s:~1.0" -vvv

然后,依赖 kuaiapp/db 这个包,作用是实现 Swoole\Coroutine\MySQL 的伪 PDO 接口

composer require "kuaiapp/db" -vvv

vendor/laravel/framework 打patch

cd .//vendor/laravel/framework
wget https://gist.githubusercontent.com/xiaohuilam/81ae50c1bc06180bd8e6fcbdaadba86a/raw/529cb96ca9abeed7a35076725b3b5cd8a1e04ff7/git.patch
git am < git.patch

启动laravel-s

php artisan laravels start

现在你就可以测试你的数据库查询了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
删除无限级目录与文件代码共享
Jul 12 PHP
桌面中心(一)创建数据库
Oct 09 PHP
PHP伪造referer实例代码
Sep 20 PHP
php自动加载的两种实现方法
Jun 21 PHP
PHP服务器页面间跳转实现方法
Aug 02 PHP
PHP5.3安装Zend Guard Loader图文教程
Sep 29 PHP
Yii核心组件AssetManager原理分析
Dec 02 PHP
通过php删除xml文档内容的方法
Jan 23 PHP
php实现socket推送技术的示例
Dec 20 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
Oct 28 PHP
PHP队列场景以及实现代码实例详解
Feb 26 PHP
PHP+Mysql分布式事务与解决方案深入理解
Feb 27 PHP
ThinkPHP框架实现的邮箱激活功能示例
Jun 15 #PHP
基于swoole实现多人聊天室
Jun 14 #PHP
PHP实现数组转JSon和JSon转数组的方法示例
Jun 14 #PHP
php实现微信公众平台发红包功能
Jun 14 #PHP
ThinkPHP3.2框架自定义配置和加载用法示例
Jun 14 #PHP
thinkPHP框架实现多表查询的方法
Jun 14 #PHP
php微信开发之关注事件
Jun 14 #PHP
You might like
用PHP的ob_start();控制您的浏览器cache!
2006/11/25 PHP
解析php中memcache的应用
2013/06/18 PHP
总结一些js自定义的函数
2006/08/05 Javascript
几个比较经典常用的jQuery小技巧
2010/03/01 Javascript
JavaScript高级程序设计 客户端存储学习笔记
2011/09/10 Javascript
jquery插件制作 提示框插件实现代码
2012/08/17 Javascript
js 获取坐标 通过JS得到当前焦点(鼠标)的坐标属性
2013/01/04 Javascript
鼠标选择动态改变网页背景颜色的JS代码
2013/12/10 Javascript
js中opener与parent的区别详细解析
2014/01/14 Javascript
jQuery中toggleClass()方法用法实例
2015/01/05 Javascript
详解JavaScript的Polymer框架中的通知交互
2015/07/29 Javascript
基于zepto的移动端轻量级日期插件--date_picker
2016/03/04 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
2016/08/15 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
vue 子组件向父组件传值方法
2018/02/26 Javascript
vue实现组件之间传值功能示例
2018/07/13 Javascript
微信小程序学习笔记之跳转页面、传递参数获得数据操作图文详解
2019/03/28 Javascript
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
[00:36]DOTA2上海特级锦标赛 Alliance战队宣传片
2016/03/04 DOTA
[00:48]DOTA2国际邀请赛公开赛报名开始 扫码开启逐梦之旅
2018/06/06 DOTA
Python实现多线程抓取妹子图
2015/08/08 Python
Python中常用的8种字符串操作方法
2019/05/06 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
2019/05/07 Python
在django模板中实现超链接配置
2019/08/21 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
2020/02/26 Python
基于python纯函数实现井字棋游戏
2020/05/27 Python
Wiggle美国:英国骑行、跑步、游泳、铁人三项商店
2018/10/27 全球购物
Perfume’s Club法国站:购买香水和化妆品
2019/05/02 全球购物
常用UNIX 命令(Linux的常用命令)
2013/07/10 面试题
木工主管岗位职责
2013/12/08 职场文书
网站开发实习生的自我评价
2013/12/11 职场文书
《云雀的心愿》教学反思
2014/02/25 职场文书
人力资源部工作计划
2019/05/14 职场文书
MySQL 亿级数据导入导出及迁移笔记
2021/06/18 MySQL