PHP之运行机制与原理
- PHP通过SAPI与Apache相连。
- PHP总共有三大模块:内核(处理网络请求、文件流、错误处理等相关操作)、Zend引擎(将源文件转化成机器语言后在虚拟机上运行它,虚拟机就是Zend引擎,简称ZE)、拓展层(函数、类库、流)。
- 当ZE执行程序时可能会需要连接多个拓展层,这时ZE将控制权交给拓展,等待处理好特定任务后再返回。
- 最后,ZE将程序运行结果返回给PHP内核,PHP内核再将结果通过SAPI传给Apache,通过服务器httpresponse返回到浏览器。
PHP简化执行过程与上述例子类似,但更加复杂,如下:
- 扫描,将index.php内容变成一个个语言片段(token)
- 解析,将一个个语言片段变成一个个有意义的表达式
- 编译,将表达式编译成中间码(opcode)
- 执行,将中间码一条一条的执行
- 输出,将要输出的内容输出到缓冲区
如何让PHP的网站运行的更快?