math1as
用ext_skel为php开发扩展

ext_skel是php源码包里自带的一个开发生成工具

使用它可以用C++编译出可用的.so库,增加函数以扩展php的功能

首先从官方下载源码

将其用tar -zxvf解压

首先我们需要建立一个xxx.skel文件,里面是我们要定义的扩展函数的声明

比如 `string bingo(string str)

然后进入到php源码包的ext目录下

使用命令

[mw_shl_code=bash,true]./ext_skel --extname=bingo --proto=/home/bingo.skel[/mw_shl_code]

来生成一个框架包

然后修改config.m4文件

注释掉PHP_ARG_WITH或PHP_ARG_ENABLE(根据实际情况二选一,第一种是指扩展需第三方库支持)

所以一般我们保留第二种

修改phpext.c文件 注释掉默认的函数,并编写我们的bingo函数

用phpize创建配置,在bingo下运行:

[mw_shl_code=bash,true]/opt/lampp/bin/phpize

./configure --with-php-config=/opt/lampp/bin/php-config[/mw_shl_code]

并进行安装

[mw_shl_code=bash,true]make&&make install clean[/mw_shl_code]

在/xxx/php/下对应的文件夹内将多出一个叫binso.so的文件

找到php.ini或extensions.ini,在其中加入一行

extension=bingo.so

重启php后,就可以使用我们自己开发的这个函数扩展啦。