




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、php內核分析之docli面是精心為大家的php內核分析之do_cli,不了解do_cli的同學不妨參考學習一下,更多內容請關注這里閱讀的php版本為PHP-7.1.0RC3,閱讀代碼的平臺為linux#main把剩下的代碼增加了下注釋全部貼出來了(這個是簡化后的main函數,去掉了一些無關緊要的代碼段):intmain(intargc,char*argv)sapi_module_struct*sapi_module=&cli_sapi_module;argv=save_ps_args(argc,argv);/程的參數,環境變量等。為的是對特定平臺,修正下argv變量以供 后續使用。c
2、li_sapi_module.additional_functions=additional_functions;/ /cli模式特有的函數#ifdefZTStsrm_startup(1,1,0,NULL);(void)ts_resource(0);ZEND_TSRMLS_CACHE_UPDATE();這里獲取一次當前執行進#endifzend_signal_startup();/設置信號,把一些需要反應的信號位設置為0/獲取參數, 做一些對應的初始化行為,或者一些簡單的操作,比如helpwhile(c=php_getopt(argc,argv,OPTIONS,&php_optarg,
3、&php_optind,0,2)!=-1)switch(c)/這里的c是代表返回的字符串的ascii碼值casec:casen:ini_ignore=1;/不使用ini文件, 通過代碼或者其他指定inibreak;cased:/配置ini的key,val值在命令行中,下面的行為都是修改ini_entries這個變量caseh:/*help&quit*/case?:php_cli_usage(argv0);gotoout;casei:casev:casem:sapi_module=&cli_sapi_module;gotoexit_loop;casee:/*enablee
4、xtendedinfooutput*/use_extended_info=1;break;exit_loop:sapi_module-ini_defaults=sapi_cli_ini_defaults;/設置初始化的ini值sapi_module-php_ini_path_override=ini_path_override;/設置重寫后的ini_path地址,如果是php-c的話,這個就為非nullsapi_module-phpinfo_as_text=1;/打開打印phpinfo的開關,需要的時候可以把phpinfo打印出來sapi_module-php_ini_ignore_cwd=1
5、;/不在當前路徑尋找php.inisapi_startup(sapi_module);/sapi初始化行為,比如初始化全局變量SG候需要調用shundown/開始調用sapi的startup方法,對cli模式, 實際上是調用php_cli_startup方法if(sapi_module-startup(sapi_module)=FAILURE)exit_status=1;gotoout;module_started=1;/標記位,標記已經調用了module的startup方法zend_first_tryexit_status=do_cli(argc,argv);/zend_end_try();
6、out:/這個代碼段已經是要退出了if(ini_path_override)free(ini_path_override);sapi_started=1;/標記,表示已經調用了startup,關閉的時這個是實際上調用的內容if(ini_entries)free(ini_entries);if(module_started)php_module_shutdown();if(sapi_started)sapi_shutdown();#ifdefZTStsrm_shutdown();#endifcleanup_ps_args(argv);exit(exit_status);其實看偽碼很簡單:tsrm_startup(1,1,0,NULL);/TSMsapi_startup(sapi_module);/SAPIsapi_module-startup(sapi_module);/php_module_shutdown();/當前模塊的zend_signal_startup();/信號設置啟動do_cli(argc,arg
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025電子書出版合同書范本
- 酒精性肝病指南解讀及中醫對策
- (59)-考點59 課外-寫人類閱讀
- 創業與投資智慧課件
- 23 黃繼光(教學設計)-2023-2024學年統編版語文四年級下冊
- 醫學院教學課件 解剖學-李華
- 2025年果洛貨運從業資格證模擬考試系統
- 2025年開封從業資格證貨運模擬考試下載
- 江蘇省啟東市天汾初級中學2025屆下學期初三化學試題5月階段性檢測試題考試試卷含解析
- 江蘇省鎮江市市級名校2025屆初三下學期畢業班聯考(二)化學試題含解析
- 《工程科學與技術》論文投稿模板
- 精美乒乓球運動活動策劃方案PPT
- GB/T 18050-2000潛油電泵電纜試驗方法
- GB 7793-2010中小學校教室采光和照明衛生標準
- FZ/T 24011-2019羊絨機織圍巾、披肩
- 金螳螂企業管理課件
- 炊事機械安全操作規程
- 最新版教育心理學課件3-成就動機
- 離合器-汽車畢業設計-設計說明書
- 中國民間美術年畫-完整版PPT
- 2022年《趣味接力跑》教案
評論
0/150
提交評論