Принудительное повторное кэширование 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 и обратно