PHP 的生命周期
主要四个过程
Module init -> Request init -> Request shutdown -> Model shutdown
在命令模式运行一个 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 都将进入结束阶段。同开始阶段一样,结束阶段也有连个环节
- 请求结束 (RSHUTDOWN)
- SAPI 生命周期结束时 (MSHUTDOWN)
PHP_RSHUTDOWN_FUNCTION(myext)
{
//例如记录请求结束时间,并把相应的信息写入到日志文件中
return SUCCESS;
}
PHP_MSHUTDOWN_FUNCTION(myext)
{
//注销一些持久化资源
return SUCCESS;
}