zoukankan      html  css  js  c++  java
  • PHP内核之旅-1.生命周期

    PHP 内核之旅系列

    1.SAPI接口

    PHP具体应用的编程接口。

    2.开始和结束

      PHP开始执行以后会经过两个主要的阶段:

        处理请求之前的开始阶段和请求之后的结束阶段。

          1.1开始阶段:

            1.1.1 模块初始化阶段(MINT),只进行一次。

            1.1.2 模块激活阶段(RINIT),PHP会调用所有模块的RINIT函数

          1.2结束阶段(脚本执行到末尾或者通过调用exit()或die()函数,PHP都将进入结束阶段)

            1.2.1 停用模块(RSHUTDOWN,对应RINIT)

            1.2.2 关闭模块(MSHUTDOWN,对应MINIT),Web服务器退出或者命令行脚本执行完毕退出时

    3.单进程SAPI生命周期

      CLI/CGI模式的PHP属于单进程的SAPI模式。处理一次请求后就关闭。

    在各个阶段之间PHP还做了很多工作。

    (1)启动

    (2)初始化若干全局变量

    (3)初始化若干常量

    (4)初始化Zend引擎和和性组建

    (5)解析php.ini

    (6)全局操作函数的初始化

    (7)初始化静态构建的模块和共享模块(MINIT)

    (8)禁用函数和类

    (9)ACTIVATION

    (10)激活Zend引擎

    (11)激活SAPI

    (12)环境初始化

    (13)模块请求初始化

    (14)运行

      php_execute_script函数包含了运行PHP脚本的全部过程

    (15)DEACTIVATION

    (16)flush

      sapi_flush将最后的内容刷新出去

    (17)关闭Zend引擎

    4.多进程SAPI生命周期

    5.Zend引擎

    Zend引擎是PHP实现的核心,提供了语言实现上的基础设施。

      PHP的语法时限,脚本的编译运行环境,扩展机制以及内存管理。

      很多PHP扩展都是使用Zend API,而Zend正是PHP语言本身的实现,PHP只是使用Zend这个内核来构建PHP语言的。

    参考资料:http://www.php-internals.com/book/?p=chapt02/02-01-php-life-cycle-and-zend-engine


    作  者: Jackson0714
    出  处:http://www.cnblogs.com/jackson0714/
    关于作者:专注于微软平台的项目开发。如有问题或建议,请多多赐教!
    版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
    特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信
    声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是作者坚持原创和持续写作的最大动力!

  • 相关阅读:
    正则表达式-汉字的匹配方法
    python 正则匹配中文(unicode)(转)
    Notepad++ 快捷键 大全
    gvim 编辑器配置
    gvim代码补全
    UNICODE,GBK,UTF-8区别
    AJAX
    day 75 中间件
    Cookie和Session 装饰器的修复技术
    必知必会13条 单表查询之双下划线 ForeignKey操作 ManyToManyField 聚合分组
  • 原文地址:https://www.cnblogs.com/jackson0714/p/PHP_1.html
Copyright © 2011-2022 走看看