php插件开发

新建config.m4

PHP_ARG_ENABLE(walu, [Whether to enable the "walu" extension], [ enable-walu
Enable "walu" extension support]) if test $PHP_WALU != "no"; then
PHP_SUBST(WALU_SHARED_LIBADD) PHP_NEW_EXTENSION(walu, walu.c, $ext_shared) fi

新建php_walu.h

//php_walu.h
#define WALU_H
//加载config.h,如果配置了的话
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
//加载php头文件
#include "php.h"
#define phpext_walu_ptr &walu_module_entry
extern zend_module_entry walu_module_entry;

新建walu.c

//walu.c
#include "php_walu.h"
//module entry
zend_module_entry walu_module_entry = {
#if ZEND_MODULE_API_NO >= 20010901
STANDARD_MODULE_HEADER,
#endif
"walu", //这个地方是扩展名称,往往我们会在这个地方使用一个宏。
NULL, /* Functions */
NULL, /* MINIT */
NULL, /* MSHUTDOWN */
NULL, /* RINIT */
NULL, /* RSHUTDOWN */
NULL, /* MINFO */
#if ZEND_MODULE_API_NO >= 20010901
"2.1", //这个地方是我们扩展的版本
#endif
STANDARD_MODULE_PROPERTIES
};
#ifdef COMPILE_DL_SAMPLE
ZEND_GET_MODULE(walu)
#endif

然后phpize,再然后./configure 然后make make install

ok,一个没有什么功能的walu.so文件就产生了。

原文地址:https://www.cnblogs.com/liuwenbohhh/p/5584175.html