2008-11-27 95 views
15

我知道如何在PHP中禁用WSDL-cache,但強制重新緩存WSDL又如何呢?在php中強制重新緩存WSDL

這就是我試過的:我將緩存設置爲禁用狀態運行我的代碼,並且新方法顯示爲預期狀態。然後我激活了緩存,但由於某種原因,我舊的非工作wsdl再次出現。所以:我如何強制我的新WSDL覆蓋舊的緩存?

回答

33

我想你什麼時候禁用緩存它也會停止寫入緩存。因此,當您重新啓用緩存時,舊的緩存副本仍然存在且有效。您可以嘗試(啓用高速緩存)

ini_set('soap.wsdl_cache_ttl', 1); 

我把時間生存在一秒鐘,因爲我覺得如果你把它零將完全禁用緩存,但不刪除該條目。當你想殺死緩存的副本時,你可能只想放入該行。

+2

這是我見過的實際工作的唯一答案。謝謝。 – 2015-01-16 14:52:13

+0

你做了我的一天! – 2017-12-07 17:22:11

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,回

3

從緩存中刪除舊的WSDL。

+0

不是一個好的解決方案。我沒有訪問服務器....即使我做..有許多肥皂服務運行。將不可能找出哪個緩存文件對應於我現在工作的ws – 2013-12-04 13:57:12

12

在我的php.ini有看起來像這樣的條目:

soap.wsdl_cache_dir="/tmp" 

/tmp中,我發現了一堆名爲WSDL到[一些十六進制字符串]文件

我可以刷新使用此命令緩存wsdl文件:

rm /tmp/wsdl-*