Force re-cache of WSDL in php

不想你离开。 提交于 2019-12-21 07:24:11

问题


I know how to disable WSDL-cache in PHP, but what about force a re-caching of the WSDL?

This is what i tried: I run my code with caching set to disabled, and the new methods showed up as espected. Then I activated caching, but of some reason my old non-working wsdl showed up again. So: how can I force my new WSDL to overwrite my old cache?


回答1:


I guess when you disable caching it will also stop writing to the cache. So when you re-enable the cache the old cached copy will still be there and valid. You could try (with caching enabled)

ini_set('soap.wsdl_cache_ttl', 1);

I put in a time-to-live of one second in because I think if you put zero in it will disable the cache entirely but not remove the entry. You probably will only want to put that line in when you want to kill the cached copy.




回答2:


In my php.ini there's an entry which looks like this:

soap.wsdl_cache_dir="/tmp"

In /tmp, I found a bunch of files named wsdl-[some hexadecimal string]

I can flush the cached wsdl files with this command:

rm /tmp/wsdl-*



回答3:


Delete the old WSDL from the cache.




回答4:


I'd try

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

Or possibly set soap.wsdl_cache_ttl to 0 and back



来源:https://stackoverflow.com/questions/323561/force-re-cache-of-wsdl-in-php

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!