tutorial soapclient services que ejemplo cache php web-services caching wsdl

soapclient - Force re-cache de WSDL en php



web services php ejemplo (4)

Elimine el viejo WSDL de la memoria caché.

Sé cómo deshabilitar WSDL-caché en PHP, pero ¿qué hay de forzar un nuevo almacenamiento en caché del WSDL?

Esto es lo que probé: ejecuto mi código con el almacenamiento en caché configurado como deshabilitado, y los nuevos métodos aparecen como esperados. Luego activé el almacenamiento en caché, pero por alguna razón apareció mi antigua wsdl que no funcionaba. Entonces, ¿cómo puedo forzar a mi nuevo WSDL a sobrescribir mi viejo caché?


Lo intentaría

$limit = ini_get(''soap.wsdl_cache_limit''); ini_set(''soap.wsdl_cache_limit'', 0); ini_set(''soap.wsdl_cache_limit'', $limit);

O posiblemente establezca soap.wsdl_cache_ttl en 0 y vuelva


En mi php.ini hay una entrada que se ve así:

soap.wsdl_cache_dir="/tmp"

En / tmp, encontré un grupo de archivos llamados wsdl- [alguna cadena hexadecimal]

Puedo descargar los archivos wsdl almacenados en caché con este comando:

rm /tmp/wsdl-*


Supongo que cuando inhabilitas el almacenamiento en caché, también dejará de escribir en el caché. Por lo tanto, cuando vuelva a habilitar el caché, la copia guardada en caché seguirá allí y será válida. Podría intentarlo (con el almacenamiento en caché habilitado)

ini_set(''soap.wsdl_cache_ttl'', 1);

Puse un tiempo de vida de un segundo porque creo que si ingresas cero, deshabilitará el caché por completo pero no eliminará la entrada. Probablemente solo quiera poner esa línea cuando quiera matar la copia en caché.