• PHP 基础架构


    1、sapi:PHP是一个脚本解析器,提供脚本的解析和执行,它输入的是普通的脚本,然后由害怕解析器按照预定义好的语法规则进行解析执行。我们可以在不同的环境中应用这个解析器,比如命令行,web环境中,为此,PHP提供了一个sapi层以适配不同的应用环境,sapi可以认识是PHP的宿主环境,aspi也是整个PHP框架最外层的一部分。它主要负责PHP框架的初始化工作。经常用到的两个sapi是cli、fpm。

    2、zendVM: PHP语言的核心实现,它主要由两部分组成:编译器和执行器。其中编译器负责把PHP代码解释为执行器可识别的指令,执行器负责执行编译器解释出指令

    3、extension;扩展是PHP内核提供的一套用于扩充PHP功能的一种方式。

    PHP的整个生命周期被划分为以下几个阶段:

    1、模块初始化阶段(激活sapi、启动PHP输出、初始化垃圾回收器、其中zend引擎)

    2、请求初始化阶段

    3、执行脚本阶段(PHP代码的编译和执行,这是zend引擎最重要的功能,在编译阶段PHP脚本将经历从PHP源代码到抽象语法树再到opline指令的转化过程最终生成的opline指令就是zend引擎可识别的执行代码)

    4、请求关闭阶段

    5、模块关闭阶段。

    根据不同的sapi的实现,各阶段的执行情况也会有一些差异,比如命令行模式下,每次执行一个脚本都会完整的经历这些阶段,而fastcgi模式下则在启动时执行一次模块初始化,然后各个请求只尽力请求初始化、执行脚本、请求关闭几个阶段,在sapi关闭时经历模块关闭阶段。

    生命周期:main()->模块初始化阶段(php_module_startup())->请求初始化阶段(php_request_startup())-脚本执行阶段(php_execute_script())-请求关闭阶段(php_request_shutdown)-模块关闭阶段(php_module_shutdown)

  • 相关阅读:
    条形码分类
    ubuntu下配置j2ee开发环境——sunjdk1.6的安装
    折腾的这几天
    Windows Phone 8 开发环境搭建
    Windows Phone SDK 8.0的安装软硬件配置要求
    ubuntu连接无线网遇到的错误和解决思路总结(无具体过程)
    解析html标签并转化成图片
    javaIO的类备忘
    ubuntu下配置j2ee开发环境——sunjdk1.7的配置
    Jmeter之JDBC Request及参数化
  • 原文地址:https://www.cnblogs.com/weiluoyan/p/8835932.html
Copyright © 2020-2023  润新知