2008-11-27 4 views
15

Je sais comment désactiver WSDL-cache en PHP, mais qu'en vigueur une nouvelle mise en cache du WSDL?force re-cache de WSDL en php

C'est ce que j'ai essayé: je lance mon code avec la mise en cache réglé sur désactivé, et les nouvelles méthodes montrais comme espected. Ensuite, j'ai activé la mise en cache, mais pour une raison quelconque, mon ancien wsdl non fonctionnel est apparu à nouveau. Alors: comment puis-je forcer mon nouveau WSDL à remplacer mon ancien cache?

Répondre

33

je suppose que lorsque vous désactivez la mise en cache, il arrêtera également écrit au cache. Ainsi, lorsque vous réactivez le cache, l'ancienne copie en cache sera toujours présente et valide. Vous pouvez essayer (avec la mise en cache activée)

ini_set('soap.wsdl_cache_ttl', 1); 

je mets dans un temps à vivre d'une seconde parce que je pense que si vous mettez zéro dans ce désactive le cache entièrement, mais pas supprimer l'entrée. Vous ne voudrez probablement que mettre cette ligne lorsque vous voulez tuer la copie en cache.

+2

C'est la seule réponse que j'ai vu qui fonctionne réellement. JE VOUS REMERCIE. –

+0

Vous avez fait ma journée! –

1

Je vais essayer

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

Ou peut-être mis soap.wsdl_cache_ttl-0 et retour

3

Supprimer l'ancien WSDL à partir du cache.

+0

Pas une bonne solution. Je n'ai pas accès au serveur ... et même si je le fais ... il y a beaucoup de services de savon en cours d'exécution. Serait impossible de trouver quel fichier cache correspond au ws je travaille maintenant –

12

Dans mon php.ini il y a une entrée qui ressemble à ceci:

soap.wsdl_cache_dir="/tmp" 

Dans/tmp, j'ai trouvé un tas de fichiers nommés wsdl- [une chaîne hexadécimale]

je peux vider le fichiers wsdl mis en cache avec cette commande:

rm /tmp/wsdl-* 
+1

Pas une bonne solution. Je n'ai pas accès au serveur ... et même si je le fais ... il y a beaucoup de services de savon en cours d'exécution. Serait impossible de trouver quel fichier cache correspond au ws je travaille maintenant –