SoapClient::__soapCall

(PHP 5, PHP 7)

SoapClient::__soapCallLlama a una función SOAP

Descripción

public SoapClient::__soapCall ( string $function_name , array $arguments [, array $options [, mixed $input_headers [, array &$output_headers ]]] ) : mixed

Esta es una función de bajo nivel del API que se utiliza para hacer llamadas SOAP. Usualmente, en modo WSDL, las funciones soap pueden llamarse como métodos del objecto SoapClient. Este método es útil en módo no-WSDL cuando no se conoce la soapaction, la uri es diferente de la por defecto o cuando se envian y/o reciben encabezados SOAP.

Cuando se produce un error, llamar a una función SOAP puede causar a PHP lanzar una excepción o revolver el objecto SoapFault si las excepciones están desactivadas. Para comprobar si la llamada a la función falló capturar las excepciones SoapFault, comprobar el resultado con is_soap_fault().

Parámetros

function_name

Nombre de la función SOAP a llamar.

arguments

Un array de argumentos a pasar a la función. Puede ser bien un array ordenado o asociativo. Tenga en cuenta que la mayoría de los servidores SOAP requieren que los nombres de parámetros sean proveídos, en cuyo caso ha de ser un array asociativo.

options

Un array asociativo de opciones a pasar al cliente.

La opción location es la URL del servicio Web remoto.

La opción uri es el destino del espacio de nombres del servicio SOAP.

La opción soapaction es la acción a llamar.

input_headers

Un array de encabezados a ser enviados con la petición SOAP.

output_headers

Si se proporciona, este array se llenará con los encabezados de la respuesta SOAP.

Valores devueltos

Las funciones SOAP quizá devuelven uno, o múltiples valores. Si solo un valor es devuelto por la función SOAP, el valor retornado de __soapCall será un valor siemple (p.e.j. un integer, un string, etc). Si múltiples valores son retornados, __soapCall devolverá un array asociativo de los nombrados parámetros de salida.

En caso de error, si el objecto SoapClient fue construido con la opción exceptions establecida a FALSE, devolverá un objeto SoapFault.

Ejemplos

Ejemplo #1 Ejemplo 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'));
?>

Ver también