2006-11-23 bailing
F:\www\php-src\ext>msdev uploadprogress\uploadprogress.dsp /MAKE "uploadprogress - Win32 Release_TS"

msdev aaa\aaa.dsp /MAKE "aaa - Win32 Release_TS"

msdev ffmpeg-php\ffmpeg-php.dsp /MAKE "ffmpeg-php - Win32 Release_TS"

/*
* 版权归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 文件,内容如下,并打开浏览器运行

屏幕上将会输出:Hello EZ Development Team
四、后记

本文仅是一篇入门级文章,旨在带你进入 PHP 扩展开发的行列,本人也将陆续写些高级开发的文章,敬请期待。

Posted on 2006-12-01 17:28  古代  阅读(696)  评论(0编辑  收藏  举报