记录一下php7扩展开发的步骤。
先做准备工作
1:在php.net下载源代码
2:安装php7
Ubuntu 16.04源码编译安装PHP7:http://www.linuxdiyf.com/linux/23034.html
扩展名称为gradytest,下面开始操作
进入ext目录,执行
./ext_skel --extname=gradytest
生成gradytest扩展目录
修改config.m4内容
把下图中的dnl注释去掉
注:关于PHP_ARG_WITH和PHP_ARG_ENABLE的区别,config.m4里面已经有说明,看是否依赖第三方的库,咱们只是做测试使用,不依赖第三方库,就选择了PHP_ARG_ENABLE,去掉注释即可
:wq保存退出
继续执行
/usr/local/php7/bin/phpize
./configure --with-php-config=/usr/local/php7/bin/php-config
make && make install
ll /usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/
php扩展已经生成了
编辑php.ini,然后php -m查看
然后用php脚本执行一下
vim gradytest.php
php gradytest.php
这说明扩展ok了,confirm_gradytest_compiled方法是ext_skel生成的默认方法,可以检测是否成功。
查看gradytest.c可看到confirm_gradytest_compiled是默认方法,已经注册
cat gradytest.c
注意,下面咱们按照confirm_gradytest_compiled写自己的方法gradytest
vim gradytest.c
编辑gradytest.c添加gradytest方法
接下来重新编译,安装,步骤如上面,不多说
自己的第一个扩展完成,其他更有意思的程序开发,需要深入php内核和Linux下C语言的学习了。