亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

PHP內核之旅-1.生命周期

標簽:
PHP

PHP 内核之旅系列

PHP内核之旅-1.生命周期

PHP内核之旅-2.SAPI中的Cli

PHP内核之旅-3.变量

回到顶部

1.SAPI接口

PHP具体应用的编程接口。

回到顶部

2.开始和结束

  PHP开始执行以后会经过两个主要的阶段:

    处理请求之前的开始阶段和请求之后的结束阶段。

      1.1开始阶段:

        1.1.1 模块初始化阶段(MINT),只进行一次。

        1.1.2 模块激活阶段(RINIT),PHP会调用所有模块的RINIT函数

      1.2结束阶段(脚本执行到末尾或者通过调用exit()或die()函数,PHP都将进入结束阶段)

        1.2.1 停用模块(RSHUTDOWN,对应RINIT)

        1.2.2 关闭模块(MSHUTDOWN,对应MINIT),Web服务器退出或者命令行脚本执行完毕退出时

回到顶部

3.单进程SAPI生命周期

  CLI/CGI模式的PHP属于单进程的SAPI模式。处理一次请求后就关闭。

https://img1.sycdn.imooc.com//5afafef80001191b05340484.jpg

在各个阶段之间PHP还做了很多工作。

(1)启动

(2)初始化若干全局变量

(3)初始化若干常量

(4)初始化Zend引擎和和性组建

(5)解析php.ini

(6)全局操作函数的初始化

(7)初始化静态构建的模块和共享模块(MINIT)

(8)禁用函数和类

(9)ACTIVATION

(10)激活Zend引擎

(11)激活SAPI

(12)环境初始化

(13)模块请求初始化

(14)运行

  php_execute_script函数包含了运行PHP脚本的全部过程

(15)DEACTIVATION

(16)flush

  sapi_flush将最后的内容刷新出去

(17)关闭Zend引擎

回到顶部

4.多进程SAPI生命周期

https://img1.sycdn.imooc.com//5afaff360001bf6605660255.jpg

 

回到顶部

 5.Zend引擎

Zend引擎是PHP实现的核心,提供了语言实现上的基础设施。

  PHP的语法时限,脚本的编译运行环境,扩展机制以及内存管理。

  很多PHP扩展都是使用Zend API,而Zend正是PHP语言本身的实现,PHP只是使用Zend这个内核来构建PHP语言的。

 

参考资料:http://www.php-internals.com/book/?p=chapt02/02-01-php-life-cycle-and-zend-engine


作  者: Jackson0714
       出  处:http://www.cnblogs.com/jackson0714/        
       关于作者:专注于微软平台的项目开发。如有问题或建议,请多多赐教!        
       版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消