SoapClient::__soapCall
(PHP 5 >= 5.0.1)
SoapClient::__soapCall — Llama a una función SOAP
Descripción
$function_name
, array $arguments
[, array $options
[, mixed $input_headers
[, array &$output_headers
]]] )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
- SoapClient::SoapClient() - Constructor de SoapClient
- SoapParam::SoapParam() - Constructor de SoapParam
- SoapVar::SoapVar() - Constructor de SoapVar
- SoapHeader::SoapHeader() - Constructor de SoapHeader
- SoapFault::SoapFault() - Constructor de SoapFault
- is_soap_fault() - Comprueba si una llamada SOAP ha fallado