菜鸟分析php源码 第二章
2011-11-14 18:06
288 查看
入口文件
1 sapi/cli/php_cli.c
619 main入口文件
784 调用php_cli_startup=> 调用php_module_startup
2 main/main.c
1643 php_module_startup
1710 zend_startup(&zuf,NULL, 1);
3 Zend/zend.c
566 zend_startup
start_memory_manager //完成了内存管理
zend_startup_strtod
zend_startup_extensions_mechanism //扩展相关
GLOBAL_FUNCTION_TABLE
GLOBAL_CLASS_TABLE
GLOBAL_AUTO_GLOBALS_TABLE
zend_hash_init_ex() //一些全局hash符号表的申请和初始化
zend_startup_constants //初始化一些常量相关的东东
zend_ini_startup //ini初始化
//这块的注释根据名字来的,没有细分析,之后会较细分析,这章主要介绍个轮廓
4 回到main/main.c
这里还是一些初始化的工作,EG、SG、PG、一些常量等等
php_startup_auto_globals 对系统global量的初始化,_GET、_POST等,暂时还在理解中
5 回到sapi/cli/php_cli.c
1105 zend_execute_scripts(ZEND_REQUIRETSRMLS_CC, NULL, 1, prepend_file_p); //程序编译执行入口
6 main/main.c
1953 php_execute_script
2036 zend_execute_scripts
7 Zend/zend.c
1111 zend_execute_scripts
1126 EG(active_op_array) =zend_compile_file(file_handle, type TSRMLS_CC); //编译生成opcode之处
1134 zend_execute(EG(active_op_array)TSRMLS_CC); //参数为op_array,进出代码能看到while(1)循环解释执行opcode,输出结果
1 sapi/cli/php_cli.c
619 main入口文件
784 调用php_cli_startup=> 调用php_module_startup
2 main/main.c
1643 php_module_startup
1710 zend_startup(&zuf,NULL, 1);
3 Zend/zend.c
566 zend_startup
start_memory_manager //完成了内存管理
zend_startup_strtod
zend_startup_extensions_mechanism //扩展相关
GLOBAL_FUNCTION_TABLE
GLOBAL_CLASS_TABLE
GLOBAL_AUTO_GLOBALS_TABLE
zend_hash_init_ex() //一些全局hash符号表的申请和初始化
zend_startup_constants //初始化一些常量相关的东东
zend_ini_startup //ini初始化
//这块的注释根据名字来的,没有细分析,之后会较细分析,这章主要介绍个轮廓
4 回到main/main.c
这里还是一些初始化的工作,EG、SG、PG、一些常量等等
php_startup_auto_globals 对系统global量的初始化,_GET、_POST等,暂时还在理解中
5 回到sapi/cli/php_cli.c
1105 zend_execute_scripts(ZEND_REQUIRETSRMLS_CC, NULL, 1, prepend_file_p); //程序编译执行入口
6 main/main.c
1953 php_execute_script
2036 zend_execute_scripts
7 Zend/zend.c
1111 zend_execute_scripts
1126 EG(active_op_array) =zend_compile_file(file_handle, type TSRMLS_CC); //编译生成opcode之处
1134 zend_execute(EG(active_op_array)TSRMLS_CC); //参数为op_array,进出代码能看到while(1)循环解释执行opcode,输出结果
相关文章推荐
- 菜鸟读jQuery 2.0.3 源码分析系列(1)
- 卷二 Dalvik与Android源码分析 第二章 进程与线程 2.2 Dalvik线程创建机制 图书版试读--请勿转发
- CI框架源码完全分析之核心文件(输出类)Output.php
- php源码分析之DZX1.5字符串截断函数cutstr用法
- 1. ThinkPHP3.1.2源码分析(ThinkPHP.php)
- dedecms源码分析:(1)index.php
- dvwa 源码分析(四) --- dvwaPhpIds.inc.php分析
- 原:PHP内核源码分析:isset与 empty
- php与memcached服务器交互的分布式实现源码分析[memcache版]
- CodeIgniter源码分析之Hook.php
- php源码之路第二章第二节(SAPI概述之FastCGI)
- php与memcached服务器交互的分布式实现源码分析
- CI框架源码完全分析之核心文件(路由)Router.php
- CI框架源码完全分析之核心文件(钩子)Hooks.php
- CI框架源码完全分析之核心文件(钩子)Hooks.php
- 菜鸟读jQuery 2.0.3 源码分析系列(2)
- PHP源码分析-数组
- PHP源码分析-全局变量
- php源码分析
- PHP源码分析-PHP的生命周期