background image

如果 PHP 是一辆车,那么车的框架就是 PHP 本身,Zend 是车的引擎(发动机),

Ext 下面的各种组件就是车的轮子,Sapi 可以看做是公路,车可以跑在不同类型的公路
上,而一次 PHP 程序的执行就是汽车跑在公路上。因此,我们需要:性能优异的引擎+合
适的车轮+正确的跑道。

3. Sapi

如前所述,Sapi 通过通过一系列的接口,使得外部应用可以和 PHP 交换数据并可

以根据不同应用特点实现特定的处理方法,我们常见的一些 sapi 有:

· apache2handler:这是以 apache 作为 webserver,采用 mod_PHP 模式运行时候的处

理方式,也是现在应用最广泛的一种。

· cgi:这是 webserver 和 PHP 直接的另一种交互方式,也就是大名鼎鼎的 fastcgi 协议,

在最近今年 fastcgi+PHP 得到越来越多的应用,也是异步 webserver 所唯一支持的方
式。

· cli:命令行调用的应用模式

4. PHP 的执行流程&opcode

我们先来看看 PHP 代码的执行所经过的流程。