PHP生命周期
PHP的整个生命周期被划分为以下几个阶段:模块初始化阶段、请求初始化阶段、执行脚本阶段、请求关闭阶段、模块关闭阶段。php的cli模式下每次执行一个脚本都会完整的经历这些阶段,而FastCgi模式下则只会在启动时执行一次模块初始化阶段,然后接下来的各个请求只会执行请求初始化阶段、脚本执行阶段,请求关闭阶段。 MINIT(module init 模块初始化) 启动 PHP 输出、初始化垃圾回收器 启动 Zend 引擎、注册 Zend 核心扩展、Zend 标准常量 解析 PHP.ini,映射 PHP.ini 相关配置 注册静态、动态编译的扩展 回调各扩展定义的 module starup 钩子函数 用一句话来说,就是初始化类、常量、扩展等 PHP 所用到的资源 RINIT(request init 请求初始化) PHP 初始化脚本执行的基本环境,SAPI 将控制权交给 PHP,激活 Zend 引擎,初始化执行器 PHP 脚本执行 Zend 引擎接管控制权,将 PHP 脚本编译成 Opcodes,并顺序执行 RSHUTDOWN (request shutdown 请求结束) PHP 脚本执行完之后进入请求结束阶段,PHP 启动清理程序,这个阶段,将 flush 输出内容,发送 http 响应内容,关闭 PHP 执行器 MSHUTDOWN(module shutdown 模块关闭)