【php学习笔记】Php 体系结构及其执行概述

Php 体系结构及其执行概述:


php采用的是典型的模块化,分层的思想。方便扩展和维护。 从上到下一次为:

一、sapi
       Server Application Programming Interface (sapi)服务端应用编程端口.

       看似很高深的概念,其实说白了就是这样一个东西,服务器程序(例如:apache,ngnix)和外围程序定义了一个约定,说咱们提供几个函数,他们的函数名称是xxx 参数是xxx 然后我们之间就可以正常调用(例如php,例如asp或者一些服务器的插件)。例如如果是在linux下与apache通讯 则就是调用的apache_2.x.so
 
二、php 扩展组件
    为php提供扩展功能的一些组件,例如我们常用的mysql驱动,加密加密解密组建 。这些组件为php提供了一些扩展功能。在php中我们可以通过函数调用的形式调用他们。

三、php层
       负责与sapi层交互控制整个php运行的流程。其实也就是说调用扩展和zend核心。同时也包括文件处理等一些php核心部分。

四、zend引擎
       php的核心实现,实现php的编译过程(词法分析,语法分析,语义分析等) 生成opcode, 执行opcode。其实就是个编译器加虚拟机。


Php的执行分两种情况,一种命令行执行方式,一种php网页执行方式


 命令行执行时候:
      首先会初始化一些环境,包括加载配置文件,加载扩展组件等。其次调用zend核心引擎生成opcode。然后执行此opcode,执行过程中如果遇到调用扩展函数,则调用相应的扩展组件入口函数。
最后执行完毕,清理现场,包括释放内存等。

网页的执行:(以apache为例)

      有两种模式这是通过apache来配置的。一种是module模式。此模式中,当apache启动时候,会加载一个php模块,创建php处理进程,等待请求。当apache收到一个请求php页面的请求时候(这里是指最终定位的资源是php文件,对于采取了url重写你请求的可能是.html但是最终执行的却是.php文件也算在内)则会调用php进程去处理,其处理流程和命令行下相同,处理完毕则返回输出结果给apache,apache负责向客户端返回http应答。
      
      一种模式是cgi模式。cgi模式不预先加载php模块,而是每次请求则产生一个php进程。通过消息发送给php进程处理,处理完毕后返回给apapche。



这个是小弟的学习笔记:可能理解上会有很多错误,乞求各位看客帮助指正,以求进步。


       

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值