[发明专利]一种基于IO多路复用的纯PHP web框架在审
申请号: | 201810292495.8 | 申请日: | 2018-03-30 |
公开(公告)号: | CN108427553A | 公开(公告)日: | 2018-08-21 |
发明(设计)人: | 何吕 | 申请(专利权)人: | 吉旗(成都)科技有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30 |
代理公司: | 北京权智天下知识产权代理事务所(普通合伙) 11638 | 代理人: | 张廷利 |
地址: | 610000 四川省*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 子进程 主进程 监听 多路复用 退出信号 退出 读取 子进程创建 回调函数 监听端口 配置文件 重启信号 重新创建 可读 研发 调用 维护 返回 配置 创建 进程 | ||
本发明公开了一种基于IO多路复用的纯PHP web框架,包括以下步骤:A、主进程读取配置文件,监听端口;B、主进程根据配置创建相应子进程数量;C、在子进程中,使用php的扩展异步监听socket;D、在回调函数中,如果socket可读,则会调用accept函数,accept函数返回一个connection;E、监听connction;F、在子进程创建完成后,主进程会监听子进程,当子进程异常退出时或者收到重启信号时,会重新创建子进程;G、当程序收到退出信号时,主进程将退出信号发送给子进程,等待子进程全部退出后,主进程退出。本发明相较于同领域的第一类框架,拥有更高的性能;相较于第二类框架,拥有更高性能的同时,还能降低对研发人员的要求,降低维护成本;相较于第三类框架,能拥有更低的维护成本。
技术领域
本发明涉及web技术领域,具体为一种基于IO多路复用的纯PHP web框架。
背景技术
同领域的现有的PHP WEB框架大概可以分为三类:
第一类是以Laravel、Symfony、Zend等为代表的MVC框架,这类框架经过长时间的发展和社区的贡献,越来越成熟,在成熟的同时,由于各种需求,框架也变得越来越重,最后导致的问题就是执行效率低下。
第二类是以Yaf为代表的,基于php扩展实现的框架。这类框架的优点是足够简单,执行效率高。但是这类框架在需要对框架层面做扩展或者调试的时候,需要精通php扩展的开发、C语言等,相对来说维护成本更高。
第三类是基于PHP扩展swoole开发出来的web框架,这类框架由于是常住内存,使用了IO多路复用,因此拥有更高的性能。但是这类框架存在和第二类框架一样的问题,需要精通PHP扩展和C语言,并且由于是异步流程,成本更高。
发明内容
本发明的目的在于提供一种基于IO多路复用的纯PHP web框架,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种基于IO多路复用的纯PHP web框架,包括以下步骤:
A、主进程读取配置文件,监听端口;
B、主进程根据配置创建相应子进程数量;
C、在子进程中,使用php的扩展异步监听socket,监听的事件为可读事件,并注册回调函数;
D、在回调函数中,如果socket可读,则会调用accept函数,accept函数返回一个connection;
E、监听connction,监听的时间包括可读和可写事件,并注册可读和可写的回调函数;
F、在子进程创建完成后,主进程会监听子进程,当子进程异常退出时或者收到重启信号时,会重新创建子进程;
G、当程序收到退出信号时,主进程将退出信号发送给子进程,等待子进程全部退出后,主进程退出。
优选的,处理流程如下:
a、当有请求时,系统会唤醒子进程,调用注册可读回调;
b、在可读回调中,从connection中读取内容,根据http协议解析内容;
c、根据解析的内容,调用相应的controller,将Controller的返回值写入Connection,关闭客户端连接。
与现有技术相比,本发明的有益效果是:本发明采用php实现的一种多路io复用的web框架,相较于同领域的第一类框架,本发明拥有更高的性能;相较于第二类框架,拥有更高性能的同时,还能降低对研发人员的要求,降低维护成本;相较于第三类框架,虽然性能上存在较小的差异,但能拥有更低的维护成本,且本发明的性能已经能满足各种业务需求。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于吉旗(成都)科技有限公司,未经吉旗(成都)科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810292495.8/2.html,转载请声明来源钻瓜专利网。