zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    数据库ACID
    tcp ip detatils
    process vs thread
    C++ virtual descructor
    static_cast dynamic_cast const_cast reinterpret_cast总结对比
    Meta Programming
    C++ traits
    c++内存管理
    洛谷 P4136 谁能赢呢?
    洛谷 P1166 打保龄球
  • 原文地址:https://www.cnblogs.com/weiluoyan/p/8835932.html
Copyright © 2011-2022 走看看