PHP架构分析
PHP 脚本执行步骤
- MINIT模块初始化阶段(Module init) :
其实就是根据php.ini文件,调用每个扩展源码中的的PHP_MINIT_FUNCTION中的方法初始化模块,进行一些模块所需变量的申请,内存分配,函数注册等。模块或者扩展包括php -m命令看到的。 - RINIT请求初始化阶段(Request init) :
即接受到客户端的请求后调用每个扩展的PHP_RINIT_FUNCTION中的方法,初始化PHP脚本的执行环境。 - 执行PHP脚本
- RShutdown请求结束(Request Shutdown) :
这时候调用每个扩展的PHP_RSHUTDOWN_FUNCTION方法清理请求现场,并且ZE开始回收变量和内存。对所有变量执行unset操作,调用析构函数销毁对象。 - MShutdown关闭模块(Module Shutdown) :
Web服务器退出或者命令行脚本执行完毕退出会调用扩展源码中的PHP_MSHUTDOWN_FUNCTION 方法