本文速读:
正文: 导语 PHP是最好的语言,Swoole重新定义了最好的语言,这当然是个梗了,不过php做为一个入门低、开发快、执行效率高的一门语言,而在以快速著称的pc互联网时代,无可争议的成为首选,这是php的优势,然后优势慢慢转化为思维定势,在很多工程师看来php开发就等同于web开发,然而如今已经是移动互联的时代,物联网,智能硬件也如火如涂,好像php不是那么受待见了(ps:一直如此),而swoole的出现,成功突破了这一思维定势,使phper可以从web开发跳出,进入了更大的服务器网络编程领域,但web开发和服务器网络编程在开发思维上还是有很大的不同,本系列文章将通过 swoole的介绍,帮助大家做思维转换,从而进入一个新天地。 PHP与SWOOLE的关系 swoole是php的一个扩展,纯c开发,主要是为了补充php在网络编程方面的不足 PHP与SWOOLE的运行模式 php做为swoole的宿主,所以了解php本身的运行模式是必不可少的,下图是以cli下执行一个php文件时的完整流程 在这里,以fpm为例,把运行周期的关键5步拿出来:
到这,可以得到一些结论:
几个误区:
OK, 我们分析出了php的基本流程,那swoole是在哪一步执行的呢?首先,swoole运行有个前提条件:必需在cli模式下执行. 然后在第3步,swoole就接管了php,进入了swoole的生命周期了。swooele的生命周期以多进程模式为例,如下:
onWorkStart 每个worker或task进程在启动之后,会回调此函数,由于此回调类似于fpm里的MINIT,所以可以在这里做一个全局的资源加载,框架初始化之类的操作,这样可以对每个请求做全局共享,而达到提升性能的目的 onReceive 每个请求(也称数据到达),会回调此函数,然后进行业务逻辑处理,输出结果 onWorkerStop worker退出时,会回调此函数。 onShutDown swoole服务停止回调此函数,然后继续fpm的第4、5步,进而退出ph生命周期。 ----------------伟大的分割线---------------- PHP饭米粒(phpfamily) 由一群靠谱的人建立,愿为PHPer带来一些值得细细品味的精神食粮! 本文由 PHP饭米粒(phpfamily) 经Swoole核心开发成员半桶水授权发布,转载请注明本来源信息,如有可能请带上以下的二维码(长按可识别二维码关注): 本文转载自:微信公众账号 - Rango,版权归原作者所有! |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|