PHP的机构

php的架构

 

1 这一点很重要:因为php的架构了解会促进对于php整体的把握

2 我们把php分成四层:

顺序由高层到底层;

1 应用层:(就是平常我们进行编程的东西:网站)

2 sapi 即应用程序接口(不同的程序执行方式要面对不停地接口)

如:命令行模式用sapicli接口

还有我们常用的apache,此时用鼎鼎大名的cgi接口,即我们常说的fastcgi接口

3 extensions:php扩展,也可以称之为组件。是用c原因编写的东西,可以大大提高程序的运行效率,写好之后,就可以当做函数直接去用

4 zend enine:这是引擎部分,用纯c编写的一个引擎。

 

3 执行流程:

从上到下的顺序依次形成

1 将整个php转换为很多个片段,我们称之为tokens;

这个过程就是传说当中的词法分析器:

他是将所有注释与所有空格都去掉:源码在zend/zend_language-scanner.l中。太复杂了!!!!!!!!

 

2 tokens转换成有意义的表达式

这个过程就是传说当中的语法分析器,他生成一个一个的opcode,并把这些opcode串联起来,以oparray的形式存在。

源码在:zend/zend-landuage-parse.y

 

3 得到opcode,即oparray;

 

4 zend顺序执行他(执行oparray),从而运行程序

 

问题:整个的流程,和这四层有着怎么样的关系,怎么去理解?

答:无关,这四层 会在zend engine里面执行,从第一层到最后一层的流程。

 

重重重重ZE就是一个复杂指令处理器:他支持150条指令

包括从最简单的echo 到最复杂的include(or require_once);我们编写的任何php代码都会变成这150命令。

 

 

posted @ 2017-05-07 16:33  freebirds  阅读(107)  评论(0)    收藏  举报