php底层简介
applocation
应用层:这就是我们平时编写的PHP程序
sapi
服务器端接口:它就是PHP与其它应用交互的接口,PHP脚本要执行有很多种方式,
通过Web服务器,或者直接在命令行下,也可以嵌入在其他程序中。
SAPI提供了一个和外部通信的接口,常见的SAPI有:cgi 、fast-cgi、cli、isapi、apache 模块的 DLL
extensions
php扩展:围绕着Zend引擎,extensions通过组件式的方式提供各种基础服务,
我们常见的各种内置函数(如array系列)、标准库等都是通过extension来实现,
用户也可以根据需要实现自己的extension以达到功能扩展、性能优化等目的
(如贴吧正在使用的PHP中间层、富文本解析就是extension的典型应用)。
zend:
zend引擎:Zend整体用纯C实现,是PHP的内核部分,它将PHP代码翻译(词法、语法解析等一系列编译过程)
为可执行opcode的处理并实现相应的处理方法、实现了基本的数据结构(如hashtable、oo)、
内存分配及管理、提供了相应的api方法供外部调用,是一切的核心,所有的外围功能均围绕Zend实现。
应用层的php代码 调用 php扩展(mysql、mysqli、array 等函数) 通过 sapi接口链接zend引擎 进行编译
打个比喻:一辆在道路上高速行驶的汽车
汽车壳子是:应用层php代码
汽车配件防护轮胎是:php扩展
道路是:sapi接口
发动机是:zend引擎