SoapClient
PHP Manual

SoapClient::SoapClient

(PHP 5 >= 5.0.1)

SoapClient::SoapClientConstructor de SoapClient

Descripción

public SoapClient::SoapClient ( mixed $wsdl [, array $options ] )

Este constructor crea objectos SoapClient en modo WSDL o non-WSDL.

Parámetros

wsdl

URI de el fichero WSDL o NULL si funciona en modo non-WSDL.

Nota:

Durante el desarollo, la caché WSDL quizá esté desactivada por el uso de la opción php.ini soap.wsdl_cache_ttl de otro modo los cambios hechos en el fichero WSDL no tendrán efecto hasta que expire soap.wsdl_cache_ttl.

options

Un array de opciones. Si está funcionando en modo WSDL, este parámetro es opciona. Si está funcionando en modo no-WSDL, las opciones location y uri deben ser definidas, donde location es el URL del servidor SOAP donde enviar la petición, y uri es el espacio de nombres destino del servicio SOAP.

Las opciones style y use solo funcionan en modo no-WSDL. En modo WSDL, provienen del fichero WSDL.

La opción soap_version especifica cuando usar SOAP el cliente 1.1 (por defecto), o SOAP 1.2.

Para autenticación HTTP las opciones login y password pueden ser usadas para proporcionar credenciales. para realizar una conexión HTTP a través de un servidor proxy, las opciones proxy_host, proxy_port, proxy_login y proxy_password también están disponibles. Para la autenticación del certificado del cliente HTTPS usar las opciones local_cert y passphrase. También se puede proporcionar autenticación en la opción authentication. El método de autenticación puede ser o bien SOAP_AUTHENTICATION_BASIC (por defecto) o SOAP_AUTHENTICATION_DIGEST.

La opción de compression permite usar compresión en peticiones SOAP HTTP y respuestas.

La opción encoding define la codificación interna de caracteres. Esta opción no cambia la codificación de las peticiones SOAP (pues siempre es utf-8), pero convierte las cadenas en este formato.

La opción trace activa el seguimiento de la petición para que los fallos puedan ser trazados. Por defecto es FALSE

La opción classmap puede ser usada para mapear de algunos tipos WSDL a clases PHP. Esta opción debe ser un array con los tipos WSDL como claves y nombre de las classes PHP como valores.

Definiendo la opción boelana trace activa el uso de los métodos SoapClient->__getLastRequest, SoapClient->__getLastRequestHeaders, SoapClient->__getLastResponse y SoapClient->__getLastResponseHeaders.

La opción exceptions es un valor boleano que define si errores soap lanzan excepciones del tipo SoapFault.

La opción connection_timeout define el tiempo de espera en segundos para la conexión del servicio SOAP. Esta opción no define el tiempo de espera para servicios con respuestas lentas. Para limitar el tiempo de espera para finalizar las llamadas, está disponible la opción default_socket_timeout.

La opción typemap es un array de tipos de mapeado. Los tipos de mapeado es un array con claves type_name, type_ns (namespace URI), from_xml (llamada de retorno que acepta un parámetro string) y to_xml (llamada de retorno que acepta un parámetro objeto).

La opción cache_wsdl es una de estas WSDL_CACHE_NONE, WSDL_CACHE_DISK, WSDL_CACHE_MEMORY o WSDL_CACHE_BOTH.

La opción user_agent especifica una cadena a usar en el encabezado User-Agent.

La opción stream_context es un resource para context.

La opción features es un bitmask de SOAP_SINGLE_ELEMENT_ARRAYS, SOAP_USE_XSI_ARRAY_TYPE, SOAP_WAIT_ONE_WAY_CALLS.

La opción keep_alive es un valor booleano que define si enviar la cabecera Connection: Keep-Alive o Connection: close.

Errores/Excepciones

SoapClient::SoapClient() generará un error E_ERROR si las opciones location y uri no son proveídas en modo non-WSDL.

Una excepción SoapFault será arrojada si la URI wsdl no puede ser cargada.

Historial de cambios

Versión Descripción
5.4.0 Nueva opción keep_alive.

Ejemplos

Ejemplo #1 Ejemplo de SoapClient::SoapClient()

<?php

$client 
= new SoapClient("some.wsdl");

$client = new SoapClient("some.wsdl", array('soap_version'   => SOAP_1_2));

$client = new SoapClient("some.wsdl", array('login'          => "some_name",
                                            
'password'       => "some_password"));

$client = new SoapClient("some.wsdl", array('proxy_host'     => "localhost",
                                            
'proxy_port'     => 8080));

$client = new SoapClient("some.wsdl", array('proxy_host'     => "localhost",
                                            
'proxy_port'     => 8080,
                                            
'proxy_login'    => "some_name",
                                            
'proxy_password' => "some_password"));

$client = new SoapClient("some.wsdl", array('local_cert'     => "cert_key.pem"));

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     
'uri'      => "http://test-uri/"));

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     
'uri'      => "http://test-uri/",
                                     
'style'    => SOAP_DOCUMENT,
                                     
'use'      => SOAP_LITERAL));

$client = new SoapClient("some.wsdl"
  array(
'compression' => SOAP_COMPRESSION_ACCEPT SOAP_COMPRESSION_GZIP));

$server = new SoapClient("some.wsdl", array('encoding'=>'ISO-8859-1'));

class 
MyBook {
    public 
$title;
    public 
$author;
}

$server = new SoapClient("books.wsdl", array('classmap' => array('book' => "MyBook")));

?>


SoapClient
PHP Manual