PHP 的生命周期总结

346 阅读1分钟

这是我参与更文挑战的第 21 天,活动详情查看: 更文挑战

本文已收录至Github,欢迎 Star:github.com/Jackson0714…
个人网站:www.passjava.cn

PHP 生命周期的两个节点

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

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

  • 开始阶段:

    • 模块初始化阶段(MINT),只进行一次。
    • 模块激活阶段(RINIT),PHP会调用所有模块的RINIT函数
  • 结束阶段(脚本执行到末尾或者通过调用exit()或die()函数,PHP都将进入结束阶段)

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

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

生命周期内做的工作

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

Zend引擎 是什么?

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

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

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

欢迎关注我的公众号:「悟空聊架构