1.php的开始和结束有两个,其中一个为随着sapi启动而启动,并随着sapi关闭而结束。每个扩展都包含这两个函数PHP_MINIT_FUNCTION 随着sapi启动,进行一些该扩展的静态变量声明等操作,这些变量将会出现在每次请求中。PHP_MSHUTDOWN_FUNCTION随着sapi的关闭进行一些该扩展的资源清理工作。
另外一个随着每个请求而启动,随着单个请求的结束而结束。PHP_RINIT_FUNCTION随着每个请求进行一些初始化,这些初始化仅仅在当前请求中有效,PHP_RSHUTDOWN_FUNCTION随着请求进行资源清理。
第一个是长周期生命周期,第二个是短周期生命周期。
2.执行php -f test.php流程如下:
调用每个扩展的MINIT函数->请求test.php->调用每个扩展的RINIT函数->执行test.php->调用每个扩展的RSHUTDOWN函数->结束清理->调用每个扩展的MSHUTDOWN函数->结束php。
3.多进程的php生命周期,例如在apache服务器中。apache开启时会产生数个子进程,每个子进程都有各自独立的进程空间。在某一个子进程空间中,其生命周期如下:
调用每个扩展的MINIT函数->(多个个页面访问)调用每个扩展的RINIT函数->(多个个页面访问)执行每个页面->(多个个页面访问)调用每个扩展的RSHUTDOWN函数->调用每个扩展的MSHUTDOWN函数。
4.多线程的生命周期
web服务器启动时产生一个单一的进程并执行每个扩展的MINIT函数->每次页面请求,产生一个线程并执行每个扩展的RINIT函数,然后执行脚本,最后调用每个扩展的RSHUTDOWN函数->web服务器关闭,则调用每个扩展的MSHUTDOWN函数。
Extending.and.Embedding.PHP读书笔记(2)-php生命周期
最新推荐文章于 2024-11-08 16:00:10 发布