初识EasySwoole框架

26次阅读

共计 4013 个字符,预计需要花费 11 分钟才能阅读完成。

EasySwoole 是啥?EasySwoole 是一款基于 Swoole Server 开发的常驻内存型的分布式 PHP 框架,专为 API 而生,摆脱传统 PHP 运行模式在进程唤起和文件加载上带来的性能损失。

-·-  全文结构 -·-**

Swoole 框架的选择
  • 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 是一个不错的选择!

  • 2、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 开发环境》)。

接下来,进入基础运行环境的搭建。

  • 3、EasySwoole 基础环境的搭建
    • *
  • 3.1、检查 PHP 版本

打开 shell 命令窗口,输入 php -v,查看 PHP 版本,确保版本大于等于 7.1。

  • 3.2、安装 swoole

1、首先进入 swoole 的 github 下载地址,如果没有特殊需求, 请选择最新版本开始下载 https://github.com/swoole/swo…

2、选择 gz 压缩包下载,下载后复制到 cygwin 安装目录下的 home 目录下

3、点击 cygwin 快捷键进入虚拟终端并解压 home 目录下的刚下载的 swoole 安装包到 /usr/local/swoole 下(如果目录不存在,可以在 /usr/local/ 目录下手动创建 swoole),命令行:

tar xzvf /home/swoole-src-4.5.2.tar.gz  -C /usr/local/swoole/

4、解压完后进入 /usr/local/swoole/swoole-src-4.5.2/ 输入命令:phpize,生成编译的配置文件 configure

5、输入命令:./configure && make && make install,配置、编译、编译安装 swoole 出现 make test 表示编译完成,按 Ctrl+ C 退出编译

6、使用命令: php -i | grep php.ini,找到 php cli 使用的配置文件 php.ini 的路径,使用 vi 修改 php.ini 文件,输入“/extension”查找 extension,按 n 再次查找,在文件中添加一行:extension=swoole.dll(windows 扩展的 swoole.dll,Linux 系统则增加 swoole.so)。

7、添加完成后,按 Esc,输入:wq 保存退出。使用命令:php -m, 查看加载的模块,如果看到 swoole,则扩展添加成功,到此 Swoole 环境搭建成功!

8、在 cygwin 界面进入 swoole 安装目录中的 example 目录下的 http 目录, 输入命令:php server.php 命令,在浏览器打开:http://127.0.0.1:9501/,出现 Hello Swoole 表示运行成功。

  • 3.3、安装 Composer

1、在之前安装的 swoole 目录下新建文件夹 composer,进入该文件夹下,运行命令:

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、运行 EasySwoole
    • *
  • 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 框架的开发。小伙伴们,下次见拜了个拜~

正文完
 0