background image

Zend API

 

: 深 入 PHP 内 核

by yAnbiN 

ben.yan@msn.com

( 二 ) 摘 要

 

摘要

知者不言,言者不知。

              ――

 

老子《道德经》五十六章

 

有时候,单纯依靠 PHP“

本身 是不行的。尽管普通用户很少遇到这种情况,但一些专业性的应用则经常

 

需要将 PHP 的性能发挥到极致(这里的性能是指速度或功能)。由于受到 PHP 语言本身的限制,同时
还可能不得不把庞大的库文件包含到每个脚本当中,因此,某些新功能并不是总能被顺利实现,所以我

 

们必须另外寻找一些方法来克服 PHP 的这些缺点。

 

了解到了这一点,我们就应该接触一下 PHP 

 

的心脏并探究一下它的内核--可以编译成 PHP 并让之

 

工作的 C 代码--的时候了。

( 三 ) 概 述

 

概述

 

扩展 PHP”说起来容易做起来难。PHP 现在已经发展成了一个具有数兆字节源代码的非常成熟的系统。

要想深入这样的一个系统,有很多东西需要学习和考虑。在写这一章节的时候,我们最终决定采用 边学

边做 的方式。这也许并不是最科学和专业的方式,但却应该是最有趣和最有效的一种方式。在下面的小
节里,你首先会非常快速的学习到如何写一个虽然很基础但却能立即运行的扩展,然后将会学习到有关 
Zend API 的高级功能。另外一个选择就是将其作为一个整体,一次性的讲述所有的这些操作、设计、技
巧和诀窍等,并且可以让我们在实际动手前就可以得到一副完整的愿景。这看起来似乎是一个更好的方
法,也没有死角,但它却枯燥无味、费时费力,很容易让人感到气馁。这就是我们为什么要采用非常直接
的讲法的原因。

 

注意,尽管这一章会尽可能多讲述一些关于 PHP 内部工作机制的知识,但要想真的给出一份在任何时
间任何情况下的 PHP 扩展指南,那简直是不可能的。PHP 是如此庞大和复杂,以致于只有你亲自动手
实践一下才有可能真正理解它的内部工作机制,因此我们强烈推荐你随时参考它的源代码来进行工作。

Zend 

 

是什么? PHP 又是什么?

Zend 指的是语言引擎,PHP 指的是我们从外面看到的一套完整的系统。这听起来有点糊涂,但其实并
不复杂(见图 3-1 PHP 

 

内部结构图)。为了实现一个 WEB 脚本的解释器,你需要完成以下三个部分的

工作: