В том месте, php_info()
где хранится кеш WSDL ( /tmp
), но я не обязательно знаю, безопасно ли удалять все файлы, начиная с WSDL.
Да, я должен быть в состоянии просто удалить все из /tmp
, но я не знаю , что еще это может повлиять , если я удалить все файлы WSDL.
ini_set('soap.wsdl_cache_ttl', 1);
и не оставил его на час - можно найти здесь: stackoverflow.com/questions/323561/…Удалите все
wsdl*
файлы в вашей/tmp
папке на сервере.Файлы WSDL кэшируются в вашем местоположении по умолчанию для всех файлов кеша, определенных в php.ini. То же место, что и ваши файлы сеанса.
источник
Если вы уже развернули код или не можете изменить конфигурацию, вы можете удалить все временные файлы из wsdl:
источник
Я рекомендую использовать средство блокировки кеша в URL-адресе wsdl.
В наших приложениях мы используем идентификатор SVN Revision в URL-адресе wsdl, чтобы клиент сразу узнал об изменении структуры. Это работает в нашем приложении, потому что каждый раз, когда мы меняем серверную часть, нам также необходимо соответствующим образом настраивать клиент.
$client = new SoapClient('http://somewhere.com/?wsdl&rev=$Revision$');
Это требует правильной настройки svn. Не во всех репозиториях это включено по умолчанию.
Если вы не несете ответственности за оба компонента (сервер, клиент) или не используете SVN, вы можете найти другой индикатор, который можно использовать как средство блокировки кеша в вашем URL-адресе wsdl.
источник
Просто по причине документации:
Сейчас (2014) я заметил, что из всех этих ценных и правильных подходов только один оказался успешным. Я добавил функцию в WSDL на сервере, и клиент не распознал новую функцию.
WSDL_CACHE_NONE
параметров не помогло.soap.wsdl_cache_enabled
Помогла установка на PHP ini.Теперь я не уверен, является ли это комбинацией всех трех, или некоторые функции ужасно реализованы, поэтому они могут оставаться бесполезными случайным образом, или есть некоторая иерархия функций, которые не поняты.
Итак, наконец, ожидайте, что вам нужно будет проверить все три, чтобы решить подобные проблемы.
источник
Отредактируйте
php.ini
файл, найдитеsoap.wsdl_cache_enabled
и установите значение на0
[soap] ; Enables or disables WSDL caching feature. ; http://php.net/soap.wsdl-cache-enabled soap.wsdl_cache_enabled=0
источник