- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 PHP内核源码阅读过程(八)
php_module_startup执行完成后,接下来就执行do_cli, php的主要执行逻辑都在这里。 zend_first_try { exit_status = do_cli(argc, argv); } zend_end_try();do_cli已经来就是检查参数的2个大循环,这里不讨论这些参数,我们以最简单的启动方式来讲:php xxx.php一、打开脚本文件...
2019-04-23 17:22:06 171 1
原创 PHP内核源码阅读过程(七)
继续讲php_module_startup一、检查废弃的ini配置,如果有设置,则报警或报错 { struct { const long error_level; const char *phrase; const char *directives[17]; /* Remember to change this if the number of directives...
2019-04-23 13:58:19 1060
原创 PHP内核源码阅读过程(六)
一、php_startup_auto_globals 初始化常用的全局变量void php_startup_auto_globals(void){ zend_register_auto_global(zend_string_init_interned("_GET", sizeof("_GET")-1, 1), 0, php_auto_globals_create_get); ze...
2019-04-23 13:38:13 220
原创 PHP内核源码阅读过程(五)
继续讲php_module_startup 的执行一、setlocale设置区域化信息setlocale(LC_CTYPE, "");这个函数调用的含义是 字符串的分类和转换使用区域化设置:如函数strtoupper二、tzset 时区设置此函数会将环境变量 TZ 读出,作为系统的时区。三、zend_register_list_destructors_ex 初始化指针类...
2019-04-22 17:57:06 490
原创 PHP内核源码阅读过程(四)
这次来讲讲zend_startupint zend_startup(zend_utility_functions *utility_functions, char **extensions)其第一个参数是一些基本的函数指针 zuf.error_function = php_error_cb; zuf.printf_function = php_printf; zuf.write...
2019-04-19 17:41:19 249
原创 PHP内核源码阅读过程(三)
int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_modules, uint32_t num_additional_modules);一、PHP_OS 操作系统类型名字php_os = PHP_OS;PHP_OS是由configure生成的,其生成代码如下PHP_OS=`...
2019-04-19 16:13:48 274
原创 PHP内核源码阅读过程(二)
接上篇,这里一开始是sapi的初始化1. sapi_startup函数SAPI_API void sapi_startup(sapi_module_struct *sf){ sf->ini_entries = NULL; sapi_module = *sf; sapi_globals_ctor(&sapi_globals); reentrancy_startu...
2019-04-09 10:33:12 347
原创 PHP内核源码阅读过程(一)
最近在阅读PHP的内核,所以把过程记下来。本人使用cli方式启动php,版本是7.3.3, 调试平台是centos6.5。cli方式启动的入口位于 sapi/cli/php_cli.c main1. 函数save_ps_args这个函数是进来后调用的第一个函数,原型:char** save_ps_args(int argc, char** argv)其功能是保存命令行参数,...
2019-04-03 18:05:24 811
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人