目前在开发过程当中因须要调用其余第三方的接口,可是第三方的接口功能存在一些局限性,好比:html
而且数据在第三方app上用户还有可能更新,将数据彻底存在本地也不合适。所以想对接口数据作预获取。想到了利用swoole的异步、监听事件及并发处理的特性。java
所以想选择一个swoole的框架,目前是只针对这个需求使用,后续别的需求也有可能会用到。laravel
我的认为在选择框架时首先要明确这2个问题,心中定义一个标准,如此才能选择出合适的框架。对于这2个问题,我先说下本身的见解。git
为何要使用框架,使用框架的目的是什么
使用框架的目的在于简化开发,让咱们没必要将精力用于路由、配置、加载文件等这些基本的处理方面,将精力专一于业务、专一于咱们要完成的功能。因此说框架只是一种工具,关键看咱们用得是否是顺手。github
什么样的框架才是好的框架
窃觉得,好的框架不是说在github上有多少star、多少fork。而应该是,首先框架可以知足使用要求,和项目自己要创建的架构是匹配的;其次框架应该是具有很好的扩展性,可以知足业务不断变化的需求;再者,就是框架应该是易于理解的,甚至是源码可以容易读懂和改进的,对于框架引发的报错可以比较容易的解决,不然若是框架自己就很复杂,使用框架没有达到简化开发的目的,反而成了一种负担,那这便违背了使用框架的初衷。web
一、 swoft
https://github.com/swoft-cloud/swoft (star:4.7k fork: 721)docker
swoft 偏向 java 的注释型写法,适合有java背景。segmentfault
Swoft 能像 Go 同样,内置协程网络服务器及经常使用的协程客户端且常驻内存,不依赖传统的 PHP-FPM。有相似 Go 语言的协程操做方式,有相似 Spring Cloud 框架灵活的注解、强大的全局依赖注入容器、完善的服务治理、灵活强大的 AOP、标准的 PSR 规范实现等等。服务器
Swoft的注释路由AOP实体Bean等都明显源自于Java,我的感受Swoft框架很全面,并且组件化的设计让他系统结构清晰并且很好选择使用所需的模块。可是太不PHP了,开发我的感受是不敏捷的swoole
文档:https://www.swoft.org/documents/v2/quick-start/directory-struct/
二、 easyswoole
https://github.com/easy-swoole/easyswoole (star: 3.3k fork: 436)
EasySwoole 是一款基于Swoole Server 开发的常驻内存型的分布式PHP框架,专为API而生,摆脱传统PHP运行模式在进程唤起和文件加载上带来的性能损失。 EasySwoole 高度封装了 Swoole Server 而依旧维持 Swoole Server 原有特性,支持同时混合监听HTTP、自定义TCP、UDP协议,让开发者以最低的学习成本和精力编写出多进程,可异步,高可用的应用服务。
easyswoole更像是一个为了便于开发的助手类,框架的上手难度低,适合团队快速适应,若是你的项目不是很复杂,有但愿精简快速的开发,es是一个不错的选择
文档:https://www.easyswoole.com/Cn/Components/Component/waitGroup.html
三、 hyperf
https://github.com/hyperf/hyperf (star:2.3k fork: 401)
hyperf 偏向 laravel 的写法,适合有laravel背景
对于hyperf,是swoft开发组中的几位的成员出来开发的一个框架,也是拥有了swoft优秀的基因基础上,再也不强制注释,集成大量企业级开发的组件,hyperf的入门难度是有的,环境的部署最好使用docker,对于初学的小白来讲,须要花费一些时间进行研究学习,对于团队的接受须要花费时间进行学习和消化,大型的集群项目相对来讲比较适合hyperf。
四、 swoole-yaf
结合PHP的Yaf框架和Swoole扩展的高性能PHP Web框架,更像是一个webserver,里面swoole的功能是没有进行封装的,适合于本身基于此主动开发适合业务的swoole框架
https://github.com/LinkedDestiny/swoole-yaf
https://github.com/wenjun1055/swoole-yaf
以上是搜集了三款使用比较普遍的swoole框架,搜集了一些资料进行了一个简单的对比,最后一款是适合于本身独立开发,能够稍微简化些工做量。各位能够根据本身业务的实际需求选择合适的框架。
https://wiki.swoole.com/wiki/page/p-framework.html
https://segmentfault.com/a/1190000020367506?utm_source=tag-newest