(PHP 5, PHP 7, PHP 8)
SoapClient::__doRequest — Performs a SOAP request
$request,$location,$action,$version,$oneWay = falsePerforms SOAP request over HTTP.
This method can be overridden in subclasses to implement different transport layers, perform additional XML processing or other purpose.
requestThe XML SOAP request.
locationThe URL to request.
actionThe SOAP action.
versionThe SOAP version.
oneWay
If oneWay is set to true, this method returns nothing.
Use this where a response is not expected.
The XML SOAP response.
Example #1 SoapClient::__doRequest() example
<?php
function Add($x, $y)
{
return $x + $y;
}
class LocalSoapClient extends SoapClient
{
private $server;
public function __construct($wsdl, $options)
{
parent::__construct($wsdl, $options);
$this->server = new SoapServer($wsdl, $options);
$this->server->addFunction('Add');
}
public function __doRequest(
$request,
$location,
$action,
$version,
$one_way = false,
): ?string {
ob_start();
$this->server->handle($request);
$response = ob_get_contents();
ob_end_clean();
return $response;
}
}
$x = new LocalSoapClient(
null,
[
'location' => 'test://',
'uri' => 'http://testuri.org',
]
);
var_dump($x->Add(3, 4));
?>