php 扩展开发流程

新的工作日  很困!

 

什么是PHP扩展?

PHP扩展是一种可以通过C语言编写的动态链接库。通过编写PHP扩展,您可以扩展PHP解析器,添加自定义函数和类,以及改变PHP的行为。这使得PHP扩展在高性能、高吞吐量Web应用程序和扩展PHP的工具箱中非常有用。

 

编写扩展

需要使用PHP的C API来与PHP解析器交互,并使用动态链接库来创建可重复使用的二进制文件。

1、创建一个c文件

#include <php.h>

 

2、写一个方法

ZEND_FUNCTION(my_function){
    char *input_str;
    int input_len;
    if( zend_parse_parameters(ZEND_NUM_AGRS() TSRMLS_CC, 's', $input_str, &input_len ) == FAILURE ) {
        RETURN_NULL();
    }

    // 逻辑
    RETURN_STRINGL(input_str, input_len, 1);
}

 

3、为PHP方法定义参数和返回值

ZEND_BEGIN_AGR_INFO(arginfo_my_function, 0)
ZEND_AGR_INFO(0, input_str)
ZEND_END_ARG_INFO()

const zend_function_entry my_function[] = {
    ZEND_FE(my_function, arginfo_my_function)
    {NULL, NULL, NULL}
}

 

4、定义PHP扩展全局信息

zend_module_entry my_module_entry = {
    STANDARD_MODULE_HEADER,
    "my_function",
    my_function,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    "1.0",
    STANDARD_MODULE_PROPERTIES
};

 

5、编写PHP扩展初始化函数进行注册

ZEND_GET_MODULE(my_function)

PHP_MINIT_FUNCTION(my_function){
    return SUCCESS;
}

 

 

编译和安装

 

 

 

使用扩展

 

posted @ 2022-10-08 08:57  方达达  阅读(20)  评论(0)    收藏  举报