我知道如何在 PHP 中禁用WSDL 缓存,但是如何强制重新缓存 WSDL?
这就是我尝试过的:我在缓存设置为禁用的情况下运行我的代码,并且新方法显示为 espected。然后我激活了缓存,但由于某种原因,我的旧的非工作 wsdl 再次出现。那么:如何强制我的新 WSDL 覆盖我的旧缓存?
我知道如何在 PHP 中禁用WSDL 缓存,但是如何强制重新缓存 WSDL?
这就是我尝试过的:我在缓存设置为禁用的情况下运行我的代码,并且新方法显示为 espected。然后我激活了缓存,但由于某种原因,我的旧的非工作 wsdl 再次出现。那么:如何强制我的新 WSDL 覆盖我的旧缓存?
我猜当您禁用缓存时,它也会停止写入缓存。因此,当您重新启用缓存时,旧的缓存副本仍然存在并且有效。您可以尝试(启用缓存)
ini_set('soap.wsdl_cache_ttl', 1);
我输入了一秒的生存时间,因为我认为如果你输入零,它将完全禁用缓存但不会删除条目。当您想杀死缓存的副本时,您可能只想放入该行。
在我的 php.ini 中有一个如下所示的条目:
soap.wsdl_cache_dir="/tmp"
在 /tmp 中,我找到了一堆名为 wsdl-[some hexadecimal string] 的文件
我可以使用以下命令刷新缓存的 wsdl 文件:
rm /tmp/wsdl-*
从缓存中删除旧的 WSDL。
我会尝试
$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 并返回