Принудительно повторно кешировать WSDL в php - PullRequest
16 голосов
/ 27 ноября 2008

Я знаю, как отключить WSDL-кэш в PHP, но как насчет принудительного повторного кэширования WSDL?

Это то, что я попробовал: я запускаю свой код с отключенным кэшированием, и новые методы показываются в соответствии с ожиданиями. Затем я активировал кеширование, но по какой-то причине мой старый нерабочий wsdl снова появился. Итак: как я могу заставить мой новый WSDL перезаписать мой старый кеш?

Ответы [ 4 ]

35 голосов
/ 27 ноября 2008

Полагаю, когда вы отключите кэширование, оно также прекратит запись в кеш. Таким образом, при повторном включении кэша старая кэшированная копия все еще будет там и будет действительной. Вы можете попробовать (с включенным кэшированием)

ini_set('soap.wsdl_cache_ttl', 1);

Я вставил время жизни в одну секунду, потому что я думаю, что если вы введете ноль, он полностью отключит кэш, но не удалит запись. Возможно, вы захотите вставить эту строку только тогда, когда хотите уничтожить кэшированную копию.

12 голосов
/ 19 мая 2009

В моем php.ini есть запись, которая выглядит так:

soap.wsdl_cache_dir="/tmp"

В / tmp я нашел группу файлов с именем wsdl- [некоторая шестнадцатеричная строка]

Я могу сбросить кэшированные файлы wsdl с помощью этой команды:

rm /tmp/wsdl-*
3 голосов
/ 27 ноября 2008

Удалить старый WSDL из кэша.

1 голос
/ 27 ноября 2008

Я бы попробовал

$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 и обратно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...