PHP的机构
php的架构
1 这一点很重要:因为php的架构了解会促进对于php整体的把握
2 我们把php分成四层:
顺序由高层到底层;
1 应用层:(就是平常我们进行编程的东西:网站)
2 sapi: 即应用程序接口(不同的程序执行方式要面对不停地接口)
如:命令行模式用sapi的cli接口
还有我们常用的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命令。
 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号