PHP Soap Server缓存响应的问题

Fra*_*ana 5 php soap caching

我已成功创建了一个客户端和服务器soap对象......但我认为在服务器端缓存存在真正的问题.我正在禁用客户端和服务器脚本上的所有缓存:

ini_set("soap.wsdl_cache", "0");
ini_set("soap.wsdl_cache_ttl", "0");
ini_set("soap.wsdl_cache_enabled", "0");
Run Code Online (Sandbox Code Playgroud)

但无论我做什么,我似乎从服务器得到完全相同的响应.我已经更改了对象名称,更改了WSDL名称,甚至在对象名称后附加了一个时间戳,以确保每次调用都不一样.然后突然,大约10或20分钟左右它会更新,我会得到一个不同的回应.我已经检查了phpinfo(),它说缓存ttl是一天(全局),所以我认为它肯定比那短.

关于杀死任何类型的缓存的任何想法?

Mar*_*tis 0

您可以尝试将选项传递给 SOAP 对象:

$client = new SoapClient("some.wsdl", array('cache_wsdl' => WSDL_CACHE_NONE));

$server = new SoapServer("some.wsdl", array('cache_wsdl' => WSDL_CACHE_NONE));
Run Code Online (Sandbox Code Playgroud)

如果这没有帮助,请尝试清除 wsdl 缓存文件。在 Linux 上,它通常位于 /tmp 文件夹中,名称以wsdl-. 如果清除此文件没有帮助,也许使用了其他缓存?它只是 SoapServer 还是使用了一些额外的库?