在php_info()
保存WSDL缓存的地方(/tmp
),但我不一定知道从WSDL开始删除所有文件是否安全.
是的,我应该能够删除所有内容/tmp
,但我不知道如果删除任何所有WSDL文件,这会产生什么影响.
您可以安全地删除WSDL缓存文件.如果您希望阻止将来的缓存,请使用:
ini_set("soap.wsdl_cache_enabled", 0);
或动态:
$client = new SoapClient('http://somewhere.com/?wsdl', array('cache_wsdl' => WSDL_CACHE_NONE) );
删除服务器上/ tmp文件夹中的所有wsdl*文件.
WSDL文件缓存在php.ini中定义的所有缓存文件的默认位置.与会话文件位置相同.
我建议在wsdl url中使用cache-buster.
在我们的应用程序中,我们在wsdl url中使用SVN Revision id,以便客户端立即知道更改结构.这适用于我们的应用程序,因为每次我们更改服务器端时,我们还需要相应地调整客户端.
$client = new SoapClient('http://somewhere.com/?wsdl&rev=$Revision$');
这需要正确配置svn.不在所有存储库上,默认情况下启用此功能.
如果您不对两个组件(服务器,客户端)负责,或者您不使用SVN,您可能会发现另一个指标可用作wsdl网址中的缓存破坏程序.
如果您已经部署了代码或无法更改任何配置,则可以从wsdl中删除所有临时文件:
rm /tmp/wsdl-*