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)

  • 相关阅读:
    Tomcat 配置用户认证服务供C#客户端调用
    Solr与HBase架构设计
    一个自定义MVP .net框架 AngelFrame
    Dell R720上的系统安装问题的解决办法(关于RAID建立磁盘阵列的技术)
    中文分词器性能比较
    关于RabbitMQ关键性问题的总结
    js基本类型与引用类型,浅拷贝和深拷贝
    sass初学入门笔记(一)
    Emmet插件比较实用常用的写法
    今天发现新大陆:haml和Emmet
  • 原文地址:https://www.cnblogs.com/weiluoyan/p/8835932.html
Copyright © 2011-2022 走看看