自己尝试着写PHP扩展

首先很重要的一句话

PHP+C/C++,基本上你可以做任何事情。完全不需要学习其他编程语言了。

以前我是比较不喜欢C++的,因为自己懒,C++太复杂,不好学。


但是现在学习写PHP扩展的话,就必须要学C++了。


写PHP扩展的话,首先需要这几个东西autoconf / gcc / make / php5 / php5-dev


当然linux我选择的是ubuntu,只需要输入 sudo apt-get install gcc make autoconf 检查下是否安装了 这三个插件。


一般如果是最新的ubuntu的话都会自带最新版本的这些插件。


然后,需要下载一个php5.X的版本,下载完之后,cd 到 ext目录下


发现有一个


ext_skel 的 扩展程序。这个程序就是我们后来要生成扩展的重要程序。


然后我们执行 ext_skel 他给出了用法



我们需要的是输入 ext_skel --extname=模块名


输入完成后,会在ext文件夹下生成一个模块名的文件夹,我们cd进去




然后我们vi config.m4 这个就是生成模块的配置文件




dnl代表注释,我们把红色方框中的注释取消掉,然后 保存 退出


然后我们用phpzip 打包进行检查,在用configure 命令 在该目录下生成了一个 makefile文件 这是一个make 的配置文件 实现C源文件的编译


我们在输入make命令



这样编译就成功了,然后我们看到test.c里面自动生成了这个PHP_FUNCTION这个函数




那好,如何测试这个扩展呢?我们先修改php.ini文件,我们可以通过php -i | grep php.ini 查找到ini 目录






然后增加一行 extension=test.so


然后php -m 发现存在这个模块了





然后你在cd到原来test的文件夹下,用php test.php可以测试模块是否安装成功!



这样 自己生成的模块就安装成功了!


然后到后面,这只是一个测试的默认用例。


我们可以看到在该模块的目录下有一个,test.h和test.c的两个文件,一个是头文件,一个是源代码文件



然后我们打开test.h文件


假如我们需要添加一个函数为test_hello的话,那么在头文件那必须添加函数声明



然后打开test.c源代码文件,将这个函数写入该文件



然后,在再zend_function_entry下添加该函数


修改完成之后,我们执行sudo make install操作。


操作完成之后,我们用 php --rf 'test_hello' 这个命令检查是否存在。


检查之后

发现了这个函数,所以第一次试验这个已经圆满成功了!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值