2

C ライブラリからカスタム php 拡張機能をラップしようとしていますが、特定のカスタム接続を開始する Initializer 関数があり、コストがかかるようで、関数を呼び出すたびに実行するべきではありません。

ZEND ラッパーに次のものがあるとします。

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

conn_init()ここでは高価な呼び出しです。その関数をどこに配置すればよいですか?

また、ユーザーにconn_init()PHP から呼び出すように依頼することはできますか?

4

1 に答える 1

1

resourceconnとしてラップする必要があるようです。

次に、拡張機能を使用したスクリプトは次のようになります

$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]);
于 2011-11-17T12:22:45.810 に答える