需求
比如开发一个叫做 hello_world 的扩展,扩展里就一个函数 hello_world_test(),输入一个字符串,函数返回:Your input string: xxxxx! 。
环境: php-5.3.16
第一步、生成代码
PHP为了扩展开发的方便,提供了一个类似代码生成器的工具ext_skel
1 | cd /opt/php-5.3.16/ext/ |
生成代码啦
第二步,修改配置
然后修改config.m4文件将10、11、12三行最前面的dnl删除掉,就是将
1 | dnl PHP_ARG_WITH(hello_world, for hello_world support, |
修改为
1 | PHP_ARG_WITH(hello_world, for hello_world support, |
第三步,实现功能
修改源码php_hello_world.h文件
在
1 | PHP_FUNCTION(confirm_hello_world_compiled); |
后,添加
1 | PHP_FUNCTION(hello_world_test); |
然后修改源码 hello_world.c 文件
添加
1 | PHP_FUNCTION(hello_world_test) |
第四步,编译扩展
保存后,开始编译
1 | /usr/local/php/bin/phpize |
第五步,添加扩展
现在看看是不是有个 /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/hello_world.so
编辑php.ini配置文件,把扩展加入进去:
1 | // 扩展路径 |
保存退出。
第六步,检查安装结果
编辑test.php文件
1 | echo "<pre>"; |
看看有没有结果输出!