(PHP 5, PHP 7)
SoapClient::SoapClient — Constructor de SoapClient
Este constructor crea objectos SoapClient en modo WSDL o non-WSDL.
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 opcional. 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 debería ser
SOAP_1_1
o SOAP_1_2
para
seleccionar SOAP 1.1 o 1.2, respectivamente. Si se omite, se usa 1.1.
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.
La opción ssl_method es una de las constantes
SOAP_SSL_METHOD_TLS
,
SOAP_SSL_METHOD_SSLv2
,
SOAP_SSL_METHOD_SSLv3
o
SOAP_SSL_METHOD_SSLv23
.
SoapClient::SoapClient() generará un
error E_ERROR
si las opciones location y
uri no son provistas en modo non-WSDL.
Una excepción SoapFault será arrojada si la URI
wsdl
no puede ser cargada.
Versión | Descripción |
---|---|
5.5.0 | Nueva opción ssl_method. |
5.4.0 | Nueva opción keep_alive. |
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));
$client = new SoapClient("some.wsdl", array('encoding'=>'ISO-8859-1'));
class MyBook {
public $title;
public $author;
}
$client = new SoapClient("books.wsdl", array('classmap' => array('book' => "MyBook")));
?>