yanfangsheng123 发表于 2018-12-14 11:28:38

php底层运行(一)

  

http://s5.运维网.com/wyfs02/M02/8D/37/wKioL1iSddfQbkCnAAD1YP30K5w576.png-wh_500x0-wm_3-wmp_4-s_4294160985.png
  

  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引擎




页: [1]
查看完整版本: php底层运行(一)