SoapClient::__soapCall

(PHP 5, PHP 7, PHP 8)

SoapClient::__soapCallChama uma função SOAP

Descrição

public SoapClient::__soapCall(
    string $name,
    array $args,
    ?array $options = null,
    SoapHeader|array|null $inputHeaders = null,
    array &$outputHeaders = null
): mixed

Esta é uma função API de baixo nível usada para fazer uma chamada SOAP. Geralmente, no modo WSDL, as funções SOAP podem ser chamadas como métodos do Objeto SoapClient. Este método é útil em modo não WSDL quando soapaction é desconhecido, uri difere do padrão ou ao enviar e/ou receber cabeçalhos SOAP.

Em caso de erro, uma chamada para uma função SOAP pode fazer com que o PHP lance exceções ou retorne um Objeto SoapFault se as exceções estiverem desabilitadas. Para verificar se a chamada de função falhou ao capturar as exceções SoapFault, verifique o resultado com is_soap_fault().

Parâmetros

name

O nome da função SOAP a ser chamada.

args

Um array dos argumentos a serem passados para a função. Isso pode ser um array ordenado ou associativo. Observe que a maioria dos servidores SOAP exigem nomes de parâmetros a serem fornecidos; nesse caso, este deve ser um array associativo.

options

Um array associativo de opções a serem passadas ao cliente.

A opção location é a URL do serviço Web remoto.

A opção uri é o namespace de destino do serviço SOAP.

A opção soapaction é a ação a ser chamada.

inputHeaders

Um array de cabeçalhos a serem enviados junto com a solicitação SOAP.

outputHeaders

Se fornecido, esse array será preenchido com os cabeçalhos da resposta SOAP.

Valor Retornado

As funções SOAP podem retornar um ou vários valores. Se apenas um valor for retornado pela função SOAP, o valor de retorno será um escalar. Se vários valores forem retornados, um array associativo de parâmetros nomeados de saída são retornados em vez disso.

Em caso de erro, se o objeto SoapClient foi construído com a opção exceptions definida como false, um objeto SoapFault será retornado.

Exemplos

Example #1 Exemplo de SoapClient::__soapCall()

<?php

$client = new SoapClient("some.wsdl");
$client->SomeFunction($a, $b, $c);

$client->__soapCall("SomeFunction", array($a, $b, $c));
$client->__soapCall("SomeFunction", array($a, $b, $c), NULL,
                    new SoapHeader(), $output_headers);


$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$client->SomeFunction($a, $b, $c);
$client->__soapCall("SomeFunction", array($a, $b, $c));
$client->__soapCall("SomeFunction", array($a, $b, $c),
                    array('soapaction' => 'some_action',
                          'uri'        => 'some_uri'));
?>

Veja Também