A través del lugar php_info()
donde se guarda la caché WSDL ( /tmp
), pero no sé necesariamente si es seguro eliminar todos los archivos que comienzan con WSDL.
Sí, debería poder eliminar todo de /tmp
, pero no sé qué más podría afectar esto si elimino todos los archivos WSDL.
ini_set('soap.wsdl_cache_ttl', 1);
y la dejé reposar durante una hora, que se encuentra aquí: stackoverflow.com/questions/323561/…Elimina todos los
wsdl*
archivos de tu/tmp
carpeta en el servidor.Los archivos WSDL se almacenan en caché en su ubicación predeterminada para todos los archivos de caché definidos en php.ini. Misma ubicación que sus archivos de sesión.
fuente
Si ya implementó el código o no puede cambiar ninguna configuración, puede eliminar todos los archivos temporales de wsdl:
fuente
Recomiendo usar un cache-buster en la URL wsdl.
En nuestras aplicaciones usamos un ID de revisión SVN en la URL wsdl para que el cliente sepa inmediatamente de las estructuras cambiantes. Esto funciona en nuestra aplicación porque, cada vez que cambiamos el lado del servidor, también necesitamos ajustar el cliente en consecuencia.
$client = new SoapClient('http://somewhere.com/?wsdl&rev=$Revision$');
Esto requiere que svn esté configurado correctamente. No en todos los repositorios esto está habilitado de forma predeterminada.
En caso de que no sea responsable de ambos componentes (servidor, cliente) o no utilice SVN, puede encontrar otro indicador que se puede utilizar como un eliminador de caché en su URL wsdl.
fuente
Solo por el motivo de la documentación:
Ahora (2014) he observado que de todos estos enfoques valiosos y correctos, solo uno tuvo éxito. Agregué una función al WSDL en el servidor y el cliente no reconocía la nueva función.
WSDL_CACHE_NONE
a los parámetros no ayudó.soap.wsdl_cache_enabled
de PHP ini ayudó.Ahora no estoy seguro de si es la combinación de los tres, o si algunas características están terriblemente implementadas, por lo que pueden permanecer inútiles al azar, o si hay alguna jerarquía de características que no se comprende.
Entonces, finalmente, espere que tenga que verificar los tres para resolver problemas como estos.
fuente
Edite su
php.ini
archivo, busquesoap.wsdl_cache_enabled
y establezca el valor en0
[soap] ; Enables or disables WSDL caching feature. ; http://php.net/soap.wsdl-cache-enabled soap.wsdl_cache_enabled=0
fuente