【swoole.1.01】swoole的介绍及安装+学习环境的介绍

一、swoole介绍

1. swoole 简介

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

2. swoole提供的功能库

swoole提供了哪些功能给我们用,以为我们用到哪些服务时,可以用swoole来帮我们实现。

  1. http服务 ,编写一个简单的web server。
  2. TCP/UDP服务 ,编写一个消息接受处理系统。
  3. 异步,可以异步的处理请求。
  4. 并发 ,可以并发的处理同一个业务逻辑。
  5. socket,socket通讯处理技术。
  6. 毫秒级别定时器,可以在php中使用定时器了。
  7. 协程,相比线程更稳定和好用。

如果你的业务中,有用到以上等特性,你又在用使用php,那么完全可以用swoole来完成了,再具体点的场景如下:

  1. 互联网
  2. 移动通信
  3. 企业软件
  4. 云计算
  5. 网络游戏
  6. 物联网(IOT)
  7. 车联网
  8. 智能家居等领域

3、swoole的框架

  1. Swoft 首个基于 Swoole 原生协程的新时代 PHP 高性能协程全栈框架,内置协程网络服务器及常用的协程客户端,常驻内存,不依赖传统的 PHP-FPM,全异步非阻塞 IO 实现,以类似于同步客户端的写法实现异步客户端的使用,没有复杂的异步回调,没有繁琐的 yield, 有类似 Go 语言的协程、灵活的注解、强大的全局依赖注入容器、完善的服务治理、灵活强大的 AOP、标准的 PSR 规范实现等等,可以用于构建高性能的Web系统、API、中间件、基础服务等等。

  2. EasySwoole EasySwoole 是一款基于Swoole Server 开发的常驻内存型PHP框架,专为API而生,摆脱传统PHP运行模式在进程唤起和文件加载上带来的性能损失。EasySwoole 高度封装了Swoole Server 而依旧维持Swoole Server 原有特性,支持同时混合监听HTTP、自定义TCP、UDP协议,让开发者以最低的学习成本和精力编写出多进程,可异步,高可用的应用服务。

  3. SwooleDistributed SwooleDistributed 老牌Swoole框架拥有最完善的开发工具以及最强大的功能,首创SDHelper开发者工具包和开发者调试命令集,可以进行单元测试,捕获客户端流量分析,可视化的进行远程断点联调,还具备代码覆盖率检测的功能(swoole与xdebug扩展不兼容,SDHelper无需xdebug扩展),并且内置组件极其丰富(类MQTT强悍的订阅发布/Actor模型/内存高速缓存/事件派发/进程管理/定时任务/AMQP任务调度/后台监控/集群/微服务/RPC/异步连接池/自定义命令等等),开发者可以直接使用加快开发进度。几乎所有的功能都支持集群化,单机切换到集群无需对代码做任何的修改。如果业务开发比较复杂比如(游戏开发)那么SD框架将是你的不二之选

二、环境依赖

1. 系统环境

  1. 仅支持 Linux、FreeBSD、MacOS 三种操作系统
  2. 在Windows平台,可使用CygWin或WSL(Windows Subsystem for Linux)
  3. Linux 内核版本 2.3.32 以上
  4. gcc-4.8或更高版本,依赖C++11
  5. 编译为 libswoole.so 作为 C/C++ 库时需要使用 cmake-2.4 或更高版本

2. PHP版本

  1. Swoole-1.x需要 PHP-5.3.10 或更高版本
  2. Swoole-4.x需要 PHP-7.0.0 或更高版本
  3. 不依赖 PHP 的 stream、sockets、pcntl、posix、1. sysvmsg 等扩展。PHP 只需安装最基本的扩展即可
  4. PHP-7.3 版本的 pcre.jit 存在 bug,可能会导致进程持续崩溃,请修改 php.ini 设置 pcre.jit=0

3. 我的环境

!注意!swoole-4和swoole-1在性能及应用层面上具有天差地别的区别(主要体现在协程上),所以我会直接使用swoole-4

[root@iZbp1acp86oa3ixxw4n1dpZ handle]# php -v
PHP 7.2.6 (cli) (built: Jan  8 2019 16:49:44) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
[root@iZbp1acp86oa3ixxw4n1dpZ handle]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core) 
[root@iZbp1acp86oa3ixxw4n1dpZ handle]# php --ri swoole

swoole

Swoole => enabled
Author => Swoole Team <team@swoole.com>
Version => 4.2.13
Built => Feb 19 2019 21:26:05

三、swoole安装

有pecl为什么我们要编译呢?本人直接使用pecl安装了swoole依赖

pecl install swoole

安装完后记得检查一下swoole扩展是否打开

[root@iZbp1acp86oa3ixxw4n1dpZ swoole]# php -m | grep swoole
swoole

没有打开的同学请自行前往php.ini打开extension=swoole.so,没有到话自行添加即可。

喜欢编译安装的同学也可以进入官网手册查看编译安装流程swoole-编译安装

四、ide提示工具

phpstorm本身是不带swoole相关类的提示信息的,需要自行将提示工具加入ide中 工具下载:http://www.noobcoder.cn/uploads/handle/swoole-ide-helper-master.zip

下载完成后解压并加入phpstorm的external libraries

随便创建一个php脚本试试

好了!学习中你需要的一切你都有了!

五、附录

swoole官网

swoole手册

swoole手册-环境依赖

swoole手册-安装

ide提示工具

程序幼儿员-龚学鹏
请先登录后发表评论
  • latest comments
  • 总共0条评论