Please note that these three ini settings will also affect the behaviour of your soap server (and clients as well) :
1. default_socket_timeout default 60 secs
Large or slow requests to your soap server or long processes at your soap server will return soap fault after 60 secs like : Error Fetching http headers.
2. max_execution_time default 30 secs
This can be the next bottleneck (but only when your default_socket_timeout is larger then this setting). Your soap server will not return anything, no faults no output, just an empty string.
3. memory_limit default 128M
Will throw fatal errors when the soap server script itself has low memory or will let your services return empty strings when the data it processes puts memory usage over this limit.
Other max POST settings luckily (but a bit suprisingly to me) have _no_ effect for your soap server. Those are :
max_input_time
max_input_nesting_level
max_input_vars
post_max_size
suhosin.post.max_array_depth
suhosin.post.max_array_index_length
suhosin.post.max_name_length
suhosin.post.max_totalname_length
suhosin.post.max_vars
suhosin.post.max_value_length
Configuración en tiempo de ejecución
El comportamiento de estas funciones se ve afectado por la configuración de php.ini.
| Nombre | Por defecto | Cambiable | Historial de cambios |
|---|---|---|---|
| soap.wsdl_cache_enabled | 1 | PHP_INI_ALL | |
| soap.wsdl_cache_dir | /tmp | PHP_INI_ALL | |
| soap.wsdl_cache_ttl | 86400 | PHP_INI_ALL | |
| soap.wsdl_cache | 1 | PHP_INI_ALL | |
| soap.wsdl_cache_limit | 5 | PHP_INI_ALL |
He aquí una breve explicación de las directivas de configuración.
-
soap.wsdl_cache_enabledinteger -
Activa o desactiva la función de almacenamiento en caché de WSDL.
-
soap.wsdl_cache_dirstring -
Define el nombre del directorio donde la extensión SOAP guardará los ficheros en caché.
-
soap.wsdl_cache_ttlinteger -
Define el número de segundos (tiempo de vida) por los que los ficheros en caché serán usados en lugar de los originales.
-
soap.wsdl_cacheinteger -
Si la opción
soap.wsdl_cache_enabledestá activada, este ajuste determina el tipo de almacenamiento en caché. Puede ser cualquiera de estos tipos:WSDL_CACHE_NONE(0),WSDL_CACHE_DISK(1),WSDL_CACHE_MEMORY(2) oWSDL_CACHE_BOTH(3). También puede definirse usando el arrayoptionsdel constructor de SoapClient o de SoapServer. -
soap.wsdl_cache_limitinteger -
Número máximo de ficheros WSDL almacenados en caché de memoria. Si se añaden más ficheros a una caché de memoria llena, se eliminarán los ficheros más antiguos de la misma.
If you want to dissable WSDL-caching, you can do so with
<?php
ini_set('soap.wsdl_cache_enabled', '0');
ini_set('soap.wsdl_cache_ttl', '0');
?>
However you must do this before creating a SOAP object (soap_client or soap_server).
Changing the settings like above does not have any effect on already existing soap-objects.
[EDIT BY danbrown AT php DOT net: Typofix provided by (james AT voodoo DOT co DOT uk) on 4-FEB-09.]
