当前位置: 首页 > 后端技术 > PHP

认识EasySwoole框架

时间:2023-03-30 02:30:03 PHP

---全文结构---**Swoole框架选择一、Swoole框架选择*在开篇《Cygwin:Windows系统下的Linux开发环境》中提到Swoole是一个PHP协程高性能网络通信引擎,使用C/C++语言编写,提供各种通信协议的网络服务器和客户端模块。可以方便快捷地实现TCP/UDP服务、高性能Web和WebSocket服务、物联网、实时通信、游戏、微服务等,让PHP不再局限于传统的Web领域。Swoole是根据PHP的标准扩展构建的。使用phpize生成编译检测脚本,./configure做编译配置检测,make编译,makeinstall安装。对于初学者来说,直接从头学习PHP扩展(swoole)可能会有点迷茫。所以这里选择一个基于Swoole开发的框架来学习。基于Swoole的开源框架有很多,比如Swoft、EasySwoole、Hyperf、ThinkPHP,LaravelS也支持Swoole。具体框架的选择因人(项目)而异。Swoft框架非常全面,它的注解路由AOP(一种面向切面编程的技术,通过运行时的预编译和动态代理实现程序功能的统一维护)实体bean等明显是从Java衍生出来的,并且有写代码的时候是明显的Java风格,可能对Java转PHP的开发者更友好。Swoft官方地址:https://www.swoft.org/Hyperf,由Swoft开发团队的几名成员开发的框架。也有Swoft的优秀基因,但不再强制注解,集成了大量企业级开发的Components,完整丰富的文档,完备的项目测试用例。Hyperf官方地址:https://www.hyperf.io/EasySwoole是我个人比较喜欢的。它不像Laravel或Swoft那样笨重,但它灵活且易于使用。数据库方面,支持Laravel的Eloquent、ThinkPHP5的think-orm等。模板引擎也支持Laravel的blade、ThinkPHP5的think-template和oldsmarty。EasySwoole的开发流程与ThinkPHP框架基本相同。如果你有ThinkPHP开发基础,开发项目不是很复杂,那么EasySwoole是个不错的选择!2.EasySwoole框架介绍*EasySwoole是基于Swoole开发的专门为API设计的内存驻留分布式PHP框架,摆脱了传统PHP运行方式在进程激活和文件加载方面带来的性能损失.官方地址:https://www.easyswoole.com/。EasyPHP-Swoole,Easyswoole的前身,后来更名为Easyswoole,目前更新到3.x版本。腾讯的IEG部门、WEGAME部门、网宿科技(国内CDN厂商)、360金融、360小游戏(Actor)、9377小游戏、厦门美图、蝉大师等公司都在使用。EasySwoole对Swoole进行了高度封装,仍然保持了Swoole原有的特性。支持同时监听HTTP、自定义TCP、UDP协议、多线程、EventLoop、事件驱动、异步、Worker进程组、Task异步任务、毫秒定时器、SSL/TLS隧道加密EventLoopAPI,方便用户直接操作底层事件循环,将socket、stream、pipeline等Linux文件添加到事件循环中。同时支持分布式微服务和RPC。此外,它还提供了各种开箱即用的通用组件,包括微信协程公众号、小程序SDK协程协程版微信、支付宝支付SDK。让开发者以最低的学习成本和努力编写多进程、异步、高可用的应用服务。EasySwoole在编写代码规范时采用驼峰法。项目中的类名和类文件(文件夹)名都是大驼峰,比如:AppClass,变量和类方法都是小驼峰,比如:appValue。EasySwoole的基本运行环境:PHP版本大于等于7.1;Swoole扩展版本大于等于4.4.15;任何版本的pcntl扩展;使用Composer作为依赖管理工具;使用Linux/FreeBSD/MacOS这三类操作系统(Windows系统安装Cygwin也可以模拟Linux环境,见《Cygwin:Windows系统下的Linux开发环境》)。接下来进入基础运行环境的搭建。3、搭建EasySwoole的基础环境*3.1。查看PHP版本打开shell命令窗口,输入php-v,查看PHP版本,确保版本大于等于7.1。3.2.安装swoole1。首先进入swoole的github下载地址。如无特殊要求,请选择最新版本开始下载https://github.com/swoole/swo...2.选择gz压缩包下载,复制到cygwin下home目录下安装目录3.点击cygwin快捷键进入虚拟终端,将主目录下新下载的swoole安装包解压到/usr/local/swoole(如果该目录不存在,可以到/usr/local/在目录下手动创建swoole),命令行:tarxzvf/home/swoole-src-4.5.2.tar.gz-C/usr/local/swoole/4,解压后进入/usr/local/swoole/swoole-src-4.5.2/输入命令:phpize,生成编译配置文件configure5,输入命令:./configure&&make&&makeinstall,configure,编译,编译安装swoole出现maketest表示编译完成,按Ctrl+C退出编译6.使用命令:php-i|grepphp.ini,找到phpcli使用的配置文件php.ini的路径,使用vi修改php.ini文件,输入“/extension”找到扩展名,再次按n搜索,在文件中添加一行中:extension=swoole.dll(windows扩展swoole.dll,linux系统添加swoole.so)。7、添加完成后按Esc,输入:wq保存退出。使用命令:php-m查看加载的模块。如果看到swoole,说明扩展添加成功,Swoole环境搭建成功!8、cygwin界面,进入swoole安装目录下example目录下的http目录,输入命令:phpserver.php命令,在浏览器中打开:http://127.0.0.1:9501/,HelloSwoole出现表示操作成功。3.3.安装Composer1。在之前安装的swoole目录下新建文件夹composer,进入该文件夹,运行命令:php-r"copy('https://install.phpcomposer.com/installer','composer-setup.php');“运行这条命令后,你可以在composer文件夹下添加一个composer-setup.php文件。执行phpcomposer-setup.php2。如果“缺少phar扩展”。执行时显示,说明系统缺少php-phar扩展。打开Cygwin安装客户端下载安装(安装步骤见《Cygwin:Windows系统下的Linux开发环境》)。3、执行完phpcomposer-setup.php,再次执行命令,出现composer表示安装成功。php作曲家.phar4。为了方便系统使用composer,执行如下命令,这样就可以全局使用composer,如下图切换到根目录后也可以执行composer。mvcomposer.phar/usr/local/bin/composer4,运行EasySwoole*4.1,安装EasySwoole1,先将composer切换到阿里云镜像,然后执行安装命令。composerconfig-grepo.packagistcomposerhttps://mirrors.aliyun.com/composer/composerrequireeasyswoole/easyswoole=3.x2,运行时出现错误,“Outofmemory(allocated40370176)(triedtoallocate2097184bytes)inphar"表示已超出内存限制。首先修改php.ini配置为unlimited:memory_limit=-1。修改后使用查询命令查询:php-r"echoini_get('memory_limit').PHP_EOL;"是否生效。3、由于我装的是Windows版的PHP,官方好像有个bug,只能运行2M。我尝试了各种设置,但都是无效的。折腾了两天,终于放弃了!这也是windows环境不确定的地方。如果你也遇到同样的问题,建议直接使用我下载好的Vendor文件,放在swoole/EasySwoole目录下。(移步公众号前线青春,点击本文原文链接,提取码:8q2a)。运行安装命令:phpvendor/easyswoole/easyswoole/bin/easyswooleinstall4。安装完成后就可以启动EasySwoole了,输入以下命令启动。启动后,打开浏览器访问:http://localhost:9501,可以看到EasySwoole的欢迎页面。phpeasyswoolestart到这里,EasySwoole安装成功!下一期,我们将正式进入EasySwoole框架的开发。朋友们,下次见再见~

猜你喜欢