PHP 的生命周期

主要四个过程
Module init -> Request init -> Request shutdown -> Model shutdown
在命令模式运行一个 PHP 脚本主要流程是以下

PHP 生命周期图

1) Call each extension 's MINIT

/**
这个过程在拓展被载入时调用
**/

PHP_MINIT_FUNCTION(myext)
{
    // 注册常量或者类等初始化操作
    return SUCCESS
}

2) Request test.php

/**
PHP 会初始化执行脚本的基本环境
包含保存在 PHP 运行过程中变量名称和变量值内容的符号表,
以及当前所有的函数以及类等信息的符号表。
然后 PHP 调用所有模块的 RINIT 函数
**/`

PHP_RINNIT_FUNCTION(myext)
{
    //例如记录开始时间
    //随后在请求结束的时候记录结束时间
    //这样就能记录下请求所花费的时间
    
    return SUCCESS;
}

3) Execute test.php

执行 test.php 阶段,主要是把 PHP 文件编译成 Opcodes ,然后在 PHP 虚拟机下执行

4) Call each extension 's RSHUTDOWN

请求处理完成后进入结束阶段,一般脚本执行到行尾或者通过 exit() 或者 die() 函数,PHP 都将进入结束阶段。同开始阶段一样,结束阶段也有连个环节

  1. 请求结束 (RSHUTDOWN)
  2. SAPI 生命周期结束时 (MSHUTDOWN)
PHP_RSHUTDOWN_FUNCTION(myext)
{
    //例如记录请求结束时间,并把相应的信息写入到日志文件中
    return SUCCESS;
}

PHP_MSHUTDOWN_FUNCTION(myext)
{
    //注销一些持久化资源
    
    return SUCCESS;
}
Last modification:February 9th, 2020 at 05:42 pm
小编很用心去写文章的,大家伙们给点支持呗。