进入源码包
cd xxxx/php-5.6.10/ext
./ext_skel --extname=test
编辑config.m4文件
PHP_ARG_ENABLE(test, whether to enable test support,
[ --enable-test Enable test support])
编辑 php_test.h头文件在最后增加一行PHP_FUNCTION(test_echo);
编辑 test.c
在145行后添加一行 PHP_FE(test_echo, NULL)
在test.c最后加上函数的方法体
PHP_FUNCTION(test_echo){
php_printf("hello_world!\n");
RETURN_TRUE;
}
最后phpize && ./configure && make && make install
安装成功后再配置里面加上 extension=test.so
运行代码
php -r 'print_r(get_extension_funcs("test"));test_echo();';进行测试
不是太了解php的运行机制,猜测第一步应该是注册扩展,第二步是注册方法,第三步声明c函数,第四部写用php内置的函数和c语言语法写c扩展的函数体
等我熟悉php的源码后给大家详细分析下扩展每一步的机制和原理