PHPh5棋牌网站制作的开发论坛:,更多PHP有关的开发可以咨询Q: 。PHP是当前应用非常广泛的一门语言,从国外的、到国内的淘宝、腾讯、百度再到互联网上林林总总的各种大中小型网站都能见到它的身影 。PHP的成功,应该说很大程度上依赖于其开放的扩展API机制和丰富的扩展组件(PHP ),正是这些扩展组件使得PHP从各种数据库操作到XML、JSON、加密、文件处理、图形处理、等领域无所不能 。有时候开发人员可能需要开发自己的PHP扩展,当前PHP5的扩展机制是基于Zend API的,Zend API提供了丰富的接口和宏定义,加上一些实用工具,使得PHP扩展开发起来难度并不算特别大 。本文将介绍关于PHP扩展组件开发的基本知识,并通过一个实例展示开发PHP扩展的基本过程 。
PHP扩展组件的开发过程在Unix和环境下有所不同,但基本是互通的,本文将基于Unix环境(具体使用Linux) 。阅读本文需要简单了解Unix环境、PHP和C语言的一些基础知识,只要简单了解就行,我会尽量不涉及太过具体的操作系统和语言特性,并在必要的地方加以解释,以便读者阅读 。
本文的具体开发环境为 10.04 + PHP 5.3.3 。
下载PHP源代码
要开发PHP扩展,第一步要下载PHP源代码,因为里面有开发扩展需要的工具 。我下载的是PHP最新版本5.3.3,格式为tar.bz2压缩包 。下载地址为: 。
下载后,将源代码移动到合适的目录并解压 。解压命令为:
1
tar -jxvf 源码包名称
若下载的是tar.gz压缩包,解压命令为
1
tar -zxvf 源码包名称
解压后,在源代码目录中有个ext目录,这里便是和PHP扩展有关的目录 。进入目录后用ls查看,可以看到许多已经存在的扩展 。下图是在我的环境下查看的结果:
文章插图
其中蓝色的均是扩展包目录,其中可以看到我们很熟悉的mysql、iconv和gd等等 。而是Unix环境下用于自动生成PHP扩展框架的脚本工具,后面我们马上会用到,.php是下对应的脚本 。
开发自己的PHP扩展——
下面我们开发一个PHP扩展: 。这个扩展很简单,只是接受一个字符串参数,然后输出“Hello xxx!” 。这个例子只是为了介绍PHP扩展组件的开发流程,不承担实际功能 。
生成扩展组件框架
PHP的扩展组件开发目录和文件是有固定组织结构的,你可以随便进入一个已有扩展组件目录,查看其所有文件,我想你一定眼花缭乱了 。当然你可以选择手工完成框架的搭建,不过我相信你更希望有什么东西来帮你完成 。上文提到的脚本就是用来自动构建扩展包框架的工具 。的完整命令为:
1
--= [--proto= file ] [--stubs= file ] [--xml[= file ]] [--skel= dir ] [--full-xml] [--no-help]
作为初学者,我们不必了解所有命令参数,实际上,大多数情况下只需要提供第一个参数就可以了,也就是扩展模块的名字 。因此,我们在ext目录中键入如下命令:
1
. / --=
(如果你希望详细了解的各项命令参数,请参考这里)
这时再用ls查看,会发现多了一个“”目录,进入这个目录,会发现已经为我们建立好了的基本框架,如下图:
如果你懒得弄清楚PHP扩展包目录结构的全部内容,那么里面有三个文件你必须注意:
.m4:这是Unix环境下的Build 配置文件,后面将会通过它生成配置和安装 。
.h:这个文件是扩展模块的头文件 。遵循C语言一贯的作风,这个里面可以放置一些自定义的结构体、全局变量等等 。
.c:这个就是扩展模块的主程序文件了,最终的扩展模块各个函数入口都在这里 。当然,你可以将所有程序代码都塞到这里面,也可以遵循模块化思想,将各个功能模块放到不同文件中 。