包装自定义php扩展

时间:2011-11-17 11:22:26

标签: php php-extension php-internals

我正在尝试从C库中包装一个自定义php扩展,现在我有一个初始化函数,它启动一个特定的自定义连接,看起来很昂贵,每次调用该函数时都不应该运行它。 / p>

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

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

conn_init()这是一个昂贵的电话,我应该把这个功能放在哪里?

我可以要求用户从PHP调用conn_init()吗?

1 个答案:

答案 0 :(得分:1)

您似乎应该将conn包裹为resource

然后使用您的扩展程序的脚本可能看起来像

$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]);