swoole和workerman哪个更易开发?

对PHP了解不多,为了实现自己的小项目而已,性能不是最重要的,开发的难易度对我更重要,哪个框架更易开发呢?

1、如果说 Swoole 2 以前,swoole 和 workerman 的差别可能就是一个是 C 扩展,一个是 PHP 代码的区别,类似 CI 与 Phalcon。

但 Swoole 4 已经与 workerman 完全不是一个等级了,Swoole 4 已然成为了核弹,而 workerman 还是那个 TNT 炸药。

Swoole 4 带来了与 Golang 几乎一致的 go + chan + defer 协程,并 Hook 的 PHP Stream 直接让 PDO/Redis 等扩展加入了协程的豪华套餐,现在的 Swoole 几乎等同一个动态单核版本的 Golang,已经能处理非常多的后端计算场景。

Swoole 的这些特性是像 workerman 这样依靠 PHP 内置的几个扩展开发而无法达到的,需要非常扎实的系统开发能力,也需要对 PHP 的底层 API 非常了解,Swoole 团队令人十分倾佩。

另外因为 Swoole 有创造的能力,workerman 则只能使用内置扩展提供的现有功能开发,就如同 MixPHP 基于 Swoole 开发,也只能通过 Swoole 提供的现有功能开发,如果扩展没有提供某些功能特性,有些想法就实现不了,好在 Swoole 团队沟通效率非常高,基本上我们一些问题都能及时的给予答复,使用 PHP 内置扩展的 workerman 就没那么好运了,扩展团队并不会因为 workerman 而修改扩展的某项功能。

有些人说 Swoole 文档不好,在我看来这个根本不成立,我开发一个完整的框架都源于 Swoole 文档,在我看来应该是大多 PHPer 经验都集中在如何实现应用需求,而且又几乎都是编写同步程序,导致知识体系非常片面,从而导致看不懂,这方面 Javaer  则更好一些,由此可见并不是文档的问题。


2、性能上Swoole毕竟是C语言开发的,在某些地方如内存管理、数据结构、通信协议解析上肯定要比PHP开发的workerman高。

功能上swoole提供的高级特性很多,列举几个workerman没有的吧,比如SSL/TLS隧道加密、http2.0、异步mysql驱动、异步redis驱动、异步的http/websocket客户端、process、lock、atomic、table。另外Swoole 2.0内置了PHP原生协程的支持,PHP代码也可以使用类似于Go语言的协程来实现高并发的网络服务器。

外部依赖上workerman需要依赖很多额外的第三方PHP扩展来实现,局限性比较大,这些扩展并非是PHP官方维护的,维护性方面良莠不齐,有些扩展连PHP7都不支持,数年没人维护。而Swoole基本上无依赖,底层的代码全部可控。

开发维护方面,Swoole的开发团队目前有大概18人左右,开发者基本上都是来自腾讯、百度、阿里、滴滴、微博等国内一线互联网企业,支持维护的团队更稳定。

当然workerman的优势是它完全使用PHP代码实现,开发者可以直接看它的源码。有特殊需求也可以直接改源码来实现。如果换成swoole就不是那么简单了。workerman做的事情更多一些,即是框架又是工具和完整的解决方案,对于没有太多后端编程功底的程序员也来说确实会容易很多。而swoole实际上只是一个底层库,不是拿来可用的完整产品,基于swoole有很多PHP的框架和程序,比如tsf、zan php framework、hprose-swoole、zphp、swoole/framework、blink、dorarpc、SwooleDistributed等等,普通开发者可以直接基于这些项目进行开发。

Swoole是给高手用的,门槛比较高,需要使用者有深厚的功底。你这里问的哪个更容易开发,这个没办法回答,这个要看你要开发什么、团队或个人的实际情况如何,合适的才是最好的。


很赞哦!(0)

文章评论

还能输入1000个字符