在php中强制重新缓存WSDL

时间:2008-11-27 11:57:53

标签: php web-services caching wsdl

我知道如何在PHP中禁用WSDL-cache,但强制重新缓存WSDL呢?

这就是我尝试的:我运行我的代码,缓存设置为禁用,并且新方法显示为受到尊重。然后我激活了缓存,但由于某种原因,我的旧的非工作wsdl再次出现。那么:我如何强制我的新WSDL覆盖我的旧缓存?

4 个答案:

答案 0 :(得分:35)

我想当你禁用缓存时,它也会停止写入缓存。因此,当您重新启用缓存时,旧的缓存副本仍然存在且有效。您可以尝试(启用缓存)

ini_set('soap.wsdl_cache_ttl', 1);

我输入了一秒钟的生存时间,因为我认为如果你将零置于其中将完全禁用缓存但不删除条目。您可能只想在要杀死缓存副本时放入该行。

答案 1 :(得分:12)

在我的php.ini中有一个看起来像这样的条目:

soap.wsdl_cache_dir="/tmp"

在/ tmp中,我发现了一堆名为wsdl的文件 - [有些十六进制字符串]

我可以使用以下命令刷新缓存的wsdl文件:

rm /tmp/wsdl-*

答案 2 :(得分:3)

从缓存中删除旧的WSDL。

答案 3 :(得分:1)

我试试

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

或者可能将soap.wsdl_cache_ttl设置为0并返回