PHP核心兩大流程之啟動PHP的核心程式碼片段____PHP

來源:互聯網
上載者:User
Step 1: Start the sapiextern zend_module_entry php_apache_module;static int php_apache2_startup(sapi_module_struct *sapi_module){        if (php_module_startup(sapi_module, &php_apache_module, 1)==FAILURE) {                return FAILURE;        }        return SUCCESS;}Step 2: Start the phpint php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_modules, uint num_additional_modules){        zend_utility_functions zuf;        zend_utility_values zuv;.....sapi_module = *sf;php_output_startup();        zuf.error_function = php_error_cb;        zuf.printf_function = php_printf;        zuf.write_function = php_output_wrapper;        zuf.fopen_function = php_fopen_wrapper_for_zend;        zuf.message_handler = php_message_handler_for_zend;        zuf.block_interruptions = sapi_module.block_interruptions;        zuf.unblock_interruptions = sapi_module.unblock_interruptions;        zuf.get_configuration_directive = php_get_configuration_directive_for_zend;        zuf.ticks_function = php_run_ticks;        zuf.on_timeout = php_on_timeout;        zuf.stream_open_function = php_stream_open_for_zend;        zuf.vspprintf_function = vspprintf;        zuf.getenv_function = sapi_getenv;        zuf.resolve_path_function = php_resolve_path_for_zend;        zend_startup(&zuf, NULL TSRMLS_CC);......gc_globals_ctor(TSRMLS_C);......        /* Register PHP core ini entries */        REGISTER_INI_ENTRIES();        /* Register Zend ini entries */        zend_register_standard_ini_entries(TSRMLS_C);        /* Disable realpath cache if an open_basedir is set */        if (PG(open_basedir) && *PG(open_basedir)) {                CWDG(realpath_cache_size_limit) = 0;        }        /* initialize stream wrappers registry         * (this uses configuration parameters from php.ini)         */        if (php_init_stream_wrappers(module_number TSRMLS_CC) == FAILURE)       {                php_printf("PHP:  Unable to initialize stream url wrappers.\n");                return FAILURE;        }        /* startup extensions staticly compiled in */        if (php_register_internal_extensions_func(TSRMLS_C) == FAILURE) {                php_printf("Unable to start builtin modules\n");                return FAILURE;        }        /* start additional PHP extensions */        php_register_extensions_bc(additional_modules, num_additional_modules TSRMLS_CC);        /* load and startup extensions compiled as shared objects (aka DLLs)           as requested by php.ini entries           theese are loaded after initialization of internal extensions           as extensions *might* rely on things from ext/standard           which is always an internal extension and to be initialized           ahead of all other internals         */        php_ini_register_extensions(TSRMLS_C);        zend_startup_modules(TSRMLS_C);        /* start Zend extensions */        zend_startup_extensions();.....}int zend_startup(zend_utility_functions *utility_functions, char **extensions TSRMLS_DC) /* {{{ */{        zend_compiler_globals *compiler_globals;        zend_executor_globals *executor_globals;......        zend_compile_file = compile_file;        zend_execute_ex = execute_ex;        zend_execute_internal = NULL;        zend_init_opcodes_handlers();......}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.