/*
* 版权归PHPSalon.com所有,未经许可,严禁任何形式转载
*
* Author: Wenlong Wu
*/
一、准备工作:
开发环境:要编译 PHP 你需要 Microsoft 开发环境。推荐使用 Microsoft Visuaul C++ 6.0,当然 Microsoft Visuaul C++.NET也可以。 其他工具:如果使用自动生成 PHP 扩展代码的话,还需要 Cygwin 运行环境,要安装bison、flex、awk等工具。 PHP 源代码:可以从PHP官方网站下载最新发行版本的源代码的打包文件或者快照,当然也可以通过匿名 CVS 得到最新的开发版本,本文假定PHP源代码包存放在 d:\ezapp\php-4.3.7 目录下。 编译好开发PHP扩展时所需的文件,如php4ts.lib、php.exe等,当然也可从已编译好的包里拷贝一份。 二、生成框架:
PHP 源代码包里提供了一个自动生成 PHP 扩展的源代码框架,可以加快你的开发进度。
进入命令行模式,执行如下命令(本文假定开发一个名为 myext 的扩展):
cd d:\ezapp\php-4.3.7\ext
..\Release_TS\php-cli.exe ext_skel_win32.php --extname=myext
执行完以上命令后,会在 ext 目录下自动建立一个名为 myext 的目录,里面的文件就是扩展的源代码的完整框架,现在就可以编译该扩展了。
msdev myext\myext.dsp /MAKE "myext - Win32 Release_TS"
编译完成后,会在 d:\ezapp\php-4.3.7\Release_TS 目录下生成一个 myext.dll 文件。拷贝这个文件到你的PHP目录下了(如:c:\php\extension),并在 php.ini 中加入 extension=myext.dll ,然后重起WEB服务器,现在打开浏览器输入 http://localhost/myext.php 浏览一下结果(假定已将myext.php 文件拷到WEB根目录下)。
该扩展目前仅包含一个名 confirm_extname_compiled 函数。
三、加入自己的代码:
这里以加入一个带参数的 hello 函数,操作步骤如下:
打开 php_myext.h 文件,增加一条申明语句,如图一所示:
(图一) 打开 myext.c 文件,加入自定义的 hello 函数,如图二、三所示:
(图二)
(图三) 重新编译 myext
msdev myext\myext.dsp /MAKE "myext - Win32 Release_TS" 拷贝 myext.dll 文件到你的PHP扩展目录下(如:c:\php\extension),并重起WEB服务器。 新建一个 hello.php 文件,内容如下,并打开浏览器运行
<?php
hello("EZ Development Team");
?>
屏幕上将会输出:Hello EZ Development Team 四、后记
本文仅是一篇入门级文章,旨在带你进入 PHP 扩展开发的行列,本人也将陆续写些高级开发的文章,敬请期待。