PHP扩展开发(1)-生成扩展框架

来源:互联网 发布:网络安全保卫局副局长 编辑:程序博客网 时间:2024/06/03 20:34
一、准备源代码

从PHP官网上下载PHP的源代码。http://php.net/downloads.php 具体哪个版本,可以自行选择。下载完成后解压。

二、创建一个扩展,并导入到PHP中

PHP为扩展开发提供了一个扩展的生成工具:ext_skel
首先我们要进入源代码的ext目录。我们可以看到ext目录中有一个ext_skel.执行如下命令:

./ext_skel --extname=test

此时,我们可以看到,在当前目录生成了一个test的文件夹。里面有几个文件,接下来,我们按步骤来配置一下这个扩展。

1. 进入test目录
2. 修改config.m4文件(此文件是自动生成在test目录下的)。找到如下几行内容。
    dnl PHP_ARG_WITH(test, for test support,
    dnl Make sure that the comment is aligned:
    dnl [  --with-test             Include test support])
    
    其中dnl是注释的意思。把前三行的dnl删除掉。变成:
    PHP_ARG_WITH(test, for test support,
    Make sure that the comment is aligned:
    [  --with-test             Include test support])
3. 修改test.c. 找到PHP_FE_END,并改为{NULL, NULL, NULL}
4. 执行phpize
5. 执行./configure
6. sudo make install 
    执行完成后,会发现生成了一个modules/test.so 这个就是最终编译好的扩展模块。
7. 将modules/test.so拷贝到php的安装目录下的extensions子目录。
8. 修改php配置文件,添加一行
    extension=test.so
    即将 test.so导入到了PHP中。
9. 执行命令:php -m
    此命令可列出所有已加载的模块,查看一是否有test模块,确保已正常加载。
    
完成以上步骤后,我们就创建好了一个test扩展的框架了。以后我们要实现的各种功能都会基于这个框架开发。让我们拭目以待吧。