Pregunta En PHP, ¿cómo se puede borrar un caché WSDL?


A través de php_info() donde se guarda el caché WSDL (/tmp), pero no necesariamente sé si es seguro eliminar todos los archivos comenzando con WSDL.

Si yo debería ser capaz de simplemente eliminar todo de /tmp, pero no sé qué más podría tener esto si elimino todos los archivos WSDL.


75
2017-11-19 21:46


origen


Respuestas:


Puede eliminar de forma segura los archivos de caché WSDL. Si desea evitar el futuro almacenamiento en caché, use:

ini_set("soap.wsdl_cache_enabled", 0);

o dinámicamente:

$client = new SoapClient('http://somewhere.com/?wsdl', array('cache_wsdl' => WSDL_CACHE_NONE) );

170
2017-11-19 21:54



elimine todos los archivos wsdl * en su carpeta / tmp 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. La misma ubicación que sus archivos de sesión.


19
2018-02-01 01:59



Recomiendo usar un cache-buster en la url wsdl.

En nuestras aplicaciones, utilizamos un id. De revisión SVN en 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 tenemos que ajustar el cliente en consecuencia.

$client = new SoapClient('http://somewhere.com/?wsdl&rev=$Revision$');

Esto requiere que svn se configure correctamente. No en todos los repositorios esto está habilitado por defecto.

En caso de que no sea responsable de ambos componentes (servidor, cliente) o no use SVN, puede encontrar otro indicador que pueda utilizarse como cache-buster en su url wsdl.


12
2017-08-01 10:34



si ya implementó el código o no puede cambiar ninguna configuración, puede eliminar todos los archivos temporales de wsdl:

rm /tmp/wsdl-*

7
2018-04-16 21:30



Solo por el motivo de la documentación:

Ahora (2014) he observado que de todos estos enfoques valiosos y correctos solo uno fue exitoso. Agregué una función al WSDL en el servidor, y el cliente no reconocía la nueva función.

  • Añadiendo WSDL_CACHE_NONE a los parámetros no ayudó.
  • Agregar el cache-buster no ayudó.
  • Ajuste soap.wsdl_cache_enabled al PHP ini ayudado.

Ahora no estoy seguro de si se trata de 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 entienden.

Entonces, finalmente, espere que tenga que verificar los tres para resolver problemas como estos.


3
2017-07-26 15:09