Zend 官方框架增加 Swoole 协程支持 !
前言
Zend Framework
是 PHP
的官方框架,随着 Zend-Expressive-Swoole 0.2.2 的发布,率先支持了 Swoole 4 的协程功能,现在可以仅通过一个配置即可使整个应用以协程模式运行,完美解决了从前的笨重低性能的印象,基于 Zend Expressive 完美解耦的设计,搭建一个高性能的符合自己心意的框架完全不在话下了!
通过 Zend Expressive 搭建一个我喜欢的框架
只需执行 composer create-project zendframework/zend-expressive-skeleton folder_name
通过 Composer
就可以进入组件安装的流程了,folder_name
改成你想要存放的文件夹名字
从上面的图片可以看到安装器会询问你好几个问题,也就是让你选择你想要的组件,理论上支持所有符合 PSR规范 的组件。
1.你想使用哪个路由?
[1] Aura.Router
[2] FastRoute
[3] Zend Router
2.你想使用哪个依赖注入容器?
[1] Aura.Di
[2] Pimple
[3] Zend ServiceManager
3.你想使用哪个模板引擎?
[1] Plates
[2] Twig
[3] Zend View
[n] 不使用
4.你想使用哪个错误处理器?
[1] Whoops
[n] 不使用
做完选择之后安装器会根据你的需求自动安装完相关的依赖,一个框架的基础就这么搭完了,整个流程极其的简单,最简单没有之一。
使用 Zend-Expressive-Swoole
那么要如何让 Zend Expressive
运行在 Swoole
上呢,服务器要安装 Swoole 4
以上的扩展就不在这多做解释了(注意要启用mysqlnd
才能使PDO
协程化),而对于 Zend
只需要通过 Composer
安装 Zend-Expressive-Swoole 组件即可,执行 composer require zendframework/zend-expressive-swoole
,然后在项目内增加一个配置文件 config/autoload/swoole.local.php
,并按以下内容配置
use Zend\Expressive\Swoole\ConfigProvider;
return array_merge((new ConfigProvider())(), [
'zend-expressive-swoole' => [
'swoole-http-server' => [
'host' => '0.0.0.0',
'port' => 80, // 端口
'options' => [
'enable_coroutine' => true, // 协程配置开关
],
],
],
]);
配置也很简单,就这么完了,现在只需要在命令行执行 php public/index.php start
即可以以协程模式在 Swoole
上运行你的 Zend 框架
了。
结语
考虑到 Zend 在国内的流行度并不高,可能帮不了国内的多少开发者,本文只为做一个引导,有兴趣的可以直接查看官方文档获得更多信息,同时 Zend-Expressive-Swoole 还自行实现了HTTP更好支持度的静态资源访问支持,有兴趣的也可以了解一下。
原文地址:
Zend 官方框架增加 Swoole 协程支持 !的更多相关文章
- Swoole 协程与 Go 协程的区别
Swoole 协程与 Go 协程的区别 进程.线程.协程的概念 进程是什么? 进程就是应用程序的启动实例. 例如:打开一个软件,就是开启了一个进程. 进程拥有代码和打开的文件资源,数据资源,独立的内存 ...
- Swoole 协程 MySQL 客户端与异步回调 MySQL 客户端的对比
Swoole 协程 MySql 客户端与 异步回调 MySql 客户端的对比 为什么要对比这两种不同模式的客户端? 异步 MySQL 回调客户端是虽然在 Swoole 1.8.6 版本就已经发布了, ...
- [Sw] Swoole-4.2.9 可以尝试愉快应用 Swoole 协程
大家知道 Swoole 提供了方便于服务器.网络编程的模式,简化了多进程编程. 这直接让 PHP 的运行很容易变成常驻内存的 Server 程序,执行效率上有了数倍的提升. 但是这一切还没有让人足够兴 ...
- Swoole协程与传统fpm同步模式比较
如果说数组是 PHP 的精髓,数组玩得不6的,根本不能算是会用PHP.那协程对于 Swoole 也是同理,不理解协程去用 Swoole,那就是在瞎用. 首先,Swoole 只能运行在命令行(Cli)模 ...
- swoole| swoole 协程初体验 转
swoole| swoole 协程初体验 date: 2018-5-30 14:31:38title: swoole| swoole 协程初体验description: 通过协程的执行初窥 swo ...
- swoole协程通道channel
swoole 协程通道 为了协程直接互相通讯传递数据 和go的通道很相似 Co\run(function(){ $chan = new Swoole\Coroutine\Channel(1); Swo ...
- swoole 协程介绍
协程的执行顺序: 1 2 3 4 5 6 7 8 9 go(function () { echo "hello go1 \n"; }); echo "hell ...
- Swoole 协程的并发调用及使用示例
示例一: 利用通道pop会自动挂起当前协程,等待生产者推送数据的特性,实现并发调用,并在协程完成后组合结果集. $serv = new Swoole\Http\Server("127.0.0 ...
- tbox新增stackless协程支持
tbox之前提供的stackfull协程库,虽然切换效率已经非常高了,但是由于每个协程都需要维护一个独立的堆栈, 内存空间利用率不是很高,在并发量非常大的时候,内存使用量会相当大. 之前考虑过采用st ...
随机推荐
- Dockerfile分离构建LNMP环境部署wordpress
最近忙着写自己的项目,也把一个站点的bbs论坛打算迁移到Docker中,测试没发现啥大问题.在单台上面的架构如下:(往后我们也是要讲到compose和swarm调度的慢慢来) 1.首先我们先安装一下d ...
- hdu5389 Zero Escape DP+滚动数组 多校联合第八场
Zero Escape Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) To ...
- gephi——怎样上传节点表格而且为节点设定颜色类型
使用gephi过程中出现两个问题: 一.节点编号不安给定的属性(Nodes)编号,而是莫名其妙地从1w+開始 解决:数据列名中需包括 id.则默觉得节点编号 二.怎样在上传的数据中指定节点颜色 须要一 ...
- DRP——重定向与转发
重定向 重定向就是又一次进行请求.第一次请求.容器推断请求的类型,是否须要重定向. 重定向的语句是"response.SendRedirect("index.jsp"); ...
- 国产芯片任重道远 国科微SSD主控芯片的“追赶之路”(不能只提供一颗芯片,而是要将芯片、国密算法、固件Firmware、BIOS和操作系统紧密联系在一起,变成完整解决方案交给行业用户,才能真正体现自身的价值)
集微网消息,“中国芯”战略之路道阻且长,踏入这个赛道的攻坚者们需要十年如一日的技术突破,需要集合产业势能,共同协作,方能建立中国核心技术真正的竞争力. 国产化之路任重道远,SSD芯片初见成效 信息时代 ...
- 0x5C 数位统计DP
怎么说,数位DP还是我的噩梦啊,细节太恐怖了. 但是这章感觉又和之前的学的数位DP有差异?(应该是用DP预处理降低时间复杂度,好劲啊,不过以前都是记忆化搜索的应该不会差多少) poj3208 f[i] ...
- [WebServer] Linux下Apache与Tomcat整合的简单方法
Apache与Tomcat比较联系 apache支持静态页,tomcat支持动态的,比如servlet等. 一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由to ...
- 一个域名如何解析到多个ip地址
一.域名解析多ip实例 简单一句话: dns 解析时多添加几个不同IP的A记录 例如: 上图中我给域名解析到两个不同的ip,大概等十分钟后我们ping 一下的结果如下 可以看到已经实现了一个域名解析到 ...
- POJ 2752 KMP中next数组的应用
题意: 让你从小到大输出给的字符串中既是前缀又是后缀的子串的长度. 思路: 先要了解这个东西: KMP中next数组表示的含义:记录着字符串匹配过程中失配情况下可以向前多跳几个字符,它描述的也是子串的 ...
- HDU 3018 一笔画问题
题意:给你一个图 判断最少用几笔把这个图画出来(画过的边不能重新画) 思路: 并查集+欧拉回路 仔细想一想. 在一个强连通分量中 所有度为奇数的点之和÷2就是要画的笔画数 Now question : ...