Swoole是一个中国人自己开发的高性能web框架,相比传统的apache fpm收发请求方式,它的性能可以去到更高,它可以替代php-fpm,直接运行在nginx,apache这些底层的web server上,接管了所有http 请求,相对很多很繁重的框架来说,例如thinkphp,laravel,它不需要每次都创建一次全局性的初始化,大家都知道,PHP本身可以认为是单线程值,没有所谓的内存机制,任何对象都不存在状态,每次都是从头再来,swoole相当于让你有了一个内存池,初始化一次后,后面所有的请求都仅仅做自己本身处理即可。这是swoole最大的一个特点。
这样一来,凡是整个框架中注册的组件,例如数据库,模板,日志,业务处理器,等等,就有了内存缓冲,不但提高了请求速度,也可以让整个应用有了上下文,更能够开发一些对事务状态有要求的PHP项目了,而这一类的应用,在swoole诞生以前,几乎是不可想象的。
Swoole本身有两部分组成,第一部分可以认为是一个扩展,这是用C语言开发的,安装方式跟任何PHP扩展类似,这个部分是swoole核心,也是它提高效率的原因,所有的所谓内存使用,都有这个模块完成。
另一部分面向开发者,提供类似YII,TP框架的MVC开发,这部分就由PHP代码组成了,开发人员在这框架上,就可以无需关心底层的运行逻辑,仅仅调用相关组件,就可以开发出Swoole应用来。
此外,也正是由于支持了以C语言核心底层,Swoole不仅仅可以支持http请求,还可以直接支持TCP, UDP请求,这是大部分其他PHP Web框架无法提供的,有了TCP请求,通过长连接,即使是PHP开发人员,也能去开发类似大型MMORPG游戏了。