php调试原理,详解PHP的执行原理和流程

关于PHP的执行过程和原理

(1)简单阐述过程

我们从未手动开启过PHP的相关进程,它是随着Apache的启动而运行的;

① PHP通过mod_php5.so模块和Apache相连(具体说来是SAPI,即服务器应用程序编程接口);

②PHP总共有三个模块:内核、Zend引擎、以及扩展层;

③PHP内核用来处理请求、文件流、错误处理等相关操作;

④Zend引擎(ZE)用以将源文件转换成机器语言,然后在虚拟机上运行它;

⑤扩展层是一组函数、类库和流,PHP使用它们来执行一些特定的操作。比如,我们需要mysql扩展来连接MySQL数据库;

⑥当ZE执行程序时可能会需要连接若干扩展,这时ZE将控制权交给扩展,等处理完特定任务后再返还;

⑦最后,ZE将程序运行结果返回给PHP内核,它再将结果传送给SAPI层,最终输出到浏览器上

(2)引言

PHP作为世界上最好的编程语音,被广泛的运用到Web开发中。因为其语法和C类似,有着非常平缓的学习曲线,越来越多的人使用PHP进行Web产品的快速开发。

PHP世界里也涌现了很多开发框架,比如Laravel、ThinkPHP等,但不论何总框架,他们在处理Web请求时的模式都是一样的,本文首先阐述PHP开发Web应用的基本架构,然后分别分析Laravel和ThinkPHP在处理Web请求时的处理流程。

(3)PHP开发Web应用的基本架构

PHP开发Web应用时用户的请求需要指向具体的入口文件。WebServer(网络服务器)是一个内容分发者,他接受用户的请求后,如果是请求的是css、js等静态文件,WebServer会找到这个文件,然后发送给浏览器;如果请求的是/index.php,根据配置文件,WebServer知道这个不是静态文件,需要去找PHP解析器来处理,那么他会把这个请求简单处理后交给PHP解析器。

2c5cd3c9a5a1b69c7b67a9541b7e5466.png

WebServer会依据CGI协议,将请求的Url、数据、Http Header等信息发送给PHP解析器,接下来PHP解析器会解析php.ini文件,初始化执行环境,然后处理请求,再以CGI规定的格式返回处理后的结果,退出进程。web server再把结果返回给浏览器。整个处理过程如上图所示。

【拓展】

①CGI协议(common gateway interfac通用网关接口),具体我在后面文章里做了总结

参考网址:

http://blog.csdn.net/qq_28602957/article/details/53363963

http://blog.csdn.net/lsy90/article/details/51323993

http://www.jb51.net/article/74907.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值