包装自定义php扩展



我试图从C库包装自定义php扩展,现在我有一个初始化函数,它启动一个特定的自定义连接,似乎是昂贵的一个,我不应该每次调用函数时都运行它。

让我们假设在ZEND包装器中有以下内容,

PHP_FUNCTION(get_data){
    conn = conn_init();
    data = getdata(conn);
    return data;
}

conn_init()在这里是一个昂贵的调用,我应该把这个函数放在哪里?

和我可以要求用户调用conn_init()从PHP和如何?

看起来你应该把conn包装成一个资源。

那么使用扩展名的脚本可能看起来像

$conn = YOUREXT_connect($cparams);
$data[1] = YOUREXT_getdata($conn, $params[1]);
$data[2] = YOUREXT_getdata($conn, $params[2]);
$data[3] = YOUREXT_getdata($conn, $params[3]);

最新更新