PHP:关闭SoapClient连接是否更好?

时间:2018-09-06 09:53:58

标签: php soap soap-client helper

我创建了以下辅助函数:

function mainSoap(){
    return new SoapClient('https://soap.url',[
        'stream_context' => stream_context_create([
            'ssl' => [
                'verify_peer' => false,
                'verify_peer_name' => false,
                'allow_self_signed' => true
            ]
        ]);
    ]);
}

我正在像$result=mainSoap()->GetSometing($parameters);

那样使用它

一切正常,但就性能而言,我想知道关闭肥皂连接是否更好。

  

更新

我创建了另一个函数以在收到响应后关闭连接,但是我仍然找不到SoapClient的close方法。

function mainSoap(string $call=null, array $vars=[]){
    $url="https://soap.url";
    $wsdl=new SoapClient($url,[
        'trace' => false,
        'keep_alive' => false,
        'stream_context' => stream_context_create([
            'ssl' => [
                'verify_peer' => false,
                'verify_peer_name' => false,
                'allow_self_signed' => true
            ]
        ]),
        'compression'   => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE
    ]);
    $response=$wsdl->__soapCall($call,$vars);
    //Looking for something like $wsdl->close();
    return $response;
}

我正在像$result=mainSoap('GetSometing',[$parameters]);

那样使用它

1 个答案:

答案 0 :(得分:4)

SoapClient遵循正常的HTTP请求生命周期,

也就是说,您的SoapClient 不与服务器保持恒定的连接,它只会在被调用时连接并接收数据,类似于您的浏览器无法维护请求终止后,请求完成后将与服务器建立连接,除非您将keep_alive设置为true。

因此,简而言之,您无法“关闭” SoapClient,因为在调用它之后,没有任何东西可以关闭,因为它已经关闭了连接。

相关链接: