(PHP 5, PHP 7, PHP 8)
SoapClient::__doRequest — Exécute une requête SOAP
$request,$location,$action,$version,$oneWay = false,$uriParserClass = nullExécute une requête SOAP.
Cette méthode peut être écrasée dans les sous-classes pour implémenter différents transporteurs, effectuer des opérations XML supplémentaires ou toute autre chose.
requestLa requête SOAP en XML.
locationL'URL de la requête.
actionL'action SOAP.
versionLa version SOAP.
oneWay
Si oneWay prend la valeur de true,
cette méthode ne retourne rien. Utilisez cette valeur
quand une réponse n'est pas attendue.
uriParserClass"Location" est reçu dans la réponse,
ou null pour utiliser l'analyse par défaut, basée sur parse_url().
La réponse SOAP en XML.
| Version | Description |
|---|---|
| 8.5.0 |
Le paramètre optionnel uriParserClass a été ajouté.
|
| 8.0.0 |
Le type de oneWay est désormais booléen ;
auparavant, c'était entier.
|
Exemple #1 Exemple avec SoapClient::__doRequest()
<?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));
?>