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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
16
0
20 718
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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 и обратно

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

Не лучшее решение. У меня нет доступа к серверу ... и даже если он есть ... работает много мыльных служб. Было бы невозможно узнать, какой файл кеша соответствует ws, над которым я сейчас работаю

Diego Favero 04.12.2013 17:57
Ответ принят как подходящий

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

ini_set('soap.wsdl_cache_ttl', 1);

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

Это ЕДИНСТВЕННЫЙ ответ, который действительно работает. СПАСИБО.

dev 16.01.2015 17:52

Вы сделали мой день!

Peter Knut 07.12.2017 20:22

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

soap.wsdl_cache_dir = "/tmp"

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

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

rm /tmp/wsdl-*

Не лучшее решение. У меня нет доступа к серверу ... и даже если он есть ... работает много мыльных служб. Было бы невозможно узнать, какой файл кеша соответствует ws, над которым я сейчас работаю

Diego Favero 04.12.2013 17:58

Другие вопросы по теме