EasySwoole是啥?EasySwoole 是一款基于Swoole Server 开发的常驻内存型的分布式PHP框架,专为API而生,摆脱传统PHP运行模式在进程唤起和文件加载上带来的性能损失。
-·- 全文结构 -·-Swoole框架的选择EasySwoole框架简介EasySwoole基础环境的搭建运行EasySwoole
1、Swoole框架的选择
在开篇《Cygwin:Windows系统下的Linux开发环境》中讲到了Swoole是一个PHP的协程高性能网络通信引擎,使用C/C++语言编写,提供了多种通信协议的网络服务器和客户端模块。
它可以方便快速的实现 TCP/UDP服务、高性能Web及WebSocket服务、物联网、实时通讯、游戏、微服务等,使PHP不再局限于传统的Web领域。
Swoole 是按照PHP的标准扩展构建的。使用phpize来生成编译检测脚本,./configure 来做编译配置检测,make进行编译,make install进行安装。
对于初学者来说,一上来就直接学习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优秀的基因基础上,但不再强制注释,集成大量企业级开发的组件,完善丰富的文档,完善的项目测试用例。
Hyperf官方地址:https://www.hyperf.io/
EasySwoole是我个人比较喜欢的,它不像Laravel或者Swoft那样重,但是足够灵活好用。在数据库方面支持来自Laravel的Eloquent、来自ThinkPHP5的think-orm等可选,模板引擎也支持来自Laravel的blade、来自ThinkPHP5的think-template和老牌的smarty。
EasySwoole的开发过程基本上和ThinkPHP框架使用的方式差不多,如果你有ThinkPHP开发基础,且开发的项目不是很复杂,那么EasySwoole是一个不错的选择!
EasySwoole 是一款基于Swoole开发的常驻内存型的分布式PHP框架,专为API而生,摆脱传统PHP运行模式在进程唤起和文件加载上带来的性能损失。
官方地址:https://www.easyswoole.com/。
Easyswoole的前身EasyPHP-Swoole,后更名为Easyswoole,目前更新到3.x版本。腾讯公司的IEG部门、WEGAME部门、网宿科技(国内CDN厂家)、360金融、360小游戏(Actor)、 9377小游戏、厦门美图网、蝉大师等公司都在使用。
EasySwoole 高度封装了Swoole而依旧维持Swoole原有特性,支持同时混合监听HTTP、自定义TCP、UDP协议,支持多线程,EventLoop,事件驱动,异步,Worker进程组,Task异步任务,毫秒定时器,SSL/TLS隧道加密 EventLoop API,让用户可以直接操作底层的事件循环,将socket,stream,管道等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开发环境》)。
接下来,进入基础运行环境的搭建。
打开shell命令窗口,输入php -v,查看PHP版本,确保版本大于等于7.1。
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
运行该命令后,可以在composer文件夹下多了一个composer-setup.php文件。执行
php composer-setup.php
2、如果执行过程中提示“The phar extension is missing.”,表示系统缺少php-phar扩展。打开Cygwin安装客户端进行下载并安装(安装步骤参见《Cygwin:Windows系统下的Linux开发环境》)。
3、执行php composer-setup.php完成后,再执行一下命令,出现composer表示安装成功。
php composer.phar
4、为了方便系统使用composer,执行下面的命令,这样就可以全局使用composer,如下图切换到根目录也能执行composer。
mv composer.phar /usr/local/bin/composer
4.1、安装EasySwoole
1、首先将composer切换阿里云镜像,然后执行安装命令。
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
composer require easyswoole/easyswoole=3.x
2、运行时出现错误,“ Out of memory (allocated 40370176) (tried to allocate 2097184 bytes) in phar ”表示内存超过了限制。首先修改php.ini配置为无限制:memory_limit = -1。修改后使用查询命令进行查询:php -r "echo ini_get('memory_limit').PHP_EOL;" 是否生效。
3、由于我安装的是Windows版本的PHP,貌似官方有个bug只能运行2M,尝试了各种设置都是无效,折腾了两天最后之后作罢!这也是Windows环境的不确定的地方。如果你也遇到了同样的问题,建议直接用我已经下载好的Vendor文件,放置在swoole/EasySwoole目录下。(移步公众号一线青年,点击本文原文链接,提取码:8q2a)。运行安装命令:
php vendor/easyswoole/easyswoole/bin/easyswoole install
4、安装完成后,既可以启动EasySwoole了,输入以下命令启动。启动后打开浏览器访问:http://localhost:9501 就可以看到EasySwoole的欢迎页面。
php easyswoole start
到此,EasySwoole就安装成功了!下一期我们正式进入EasySwoole框架的开发。小伙伴们,下次见拜了个拜~