Принудительное повторное кэширование WSDL в php

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

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

Ответ 1

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

ini_set('soap.wsdl_cache_ttl', 1);

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

Ответ 2

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

soap.wsdl_cache_dir="/tmp"

В/tmp я нашел кучу файлов с именем wsdl- [some hexadecimal string]

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

rm /tmp/wsdl-*

Ответ 3

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

Ответ 4

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

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