php内核就像一个迷宫,如果没有一个纵览全局的图,只是面对其中的一个点,就会像进了迷宫一样,走着走着就走到了死胡同。在这个迷宫里转悠了很久之后,最近得到了一张php藏宝图,然后看着这张图去游览php内核,顿时觉得这个景区的面貌清晰了许多。废话不说了,上图:这张图包括两部分,分别对应PHP的启动过程,和PHP处理每个请求的过程。PHP的启动过程是一系列的初始化操作,建立处理请求时使用的各种全局变量:Apache启动=> sapi_startup=> php_module_startup (PHP的主开关)立即学习“PHP免费学习笔记(深入)
”;
=> php_output_startup=> zend_startup (启动Zend引擎)=> register_ini_entries=> php_ini_stream_wrappers=> php_ini_register_extensions (启动动态加载的扩展)=> zend_startup_modules=> zend_startup_extensions下面是处理每个请求时的流程:php_handler=> php_apche_request_ctor=> zend_activate=> zend_execute_scripts=> zend_compile (语法分析、语义分析、生成oparray)=> zend_execute (执行opcode)=> zend_deactivate进程退出时关掉zend、php:sapi_shutdown=> zend_shutdown
