我试图从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]);