среда, 14 сентября 2011 г.

Очистка кеша WSDL при использовании SoapClient

Сейчас работаю с платежной системой Zuora. Вчера возникла проблема с сохранением кастомных атрибутов на сервере. Проблема заключалась в том, что атрибут не сейвился у определенного объекта. Общаемся мы с помощью стандартного SoapClient. После просмотра реквеста, оказалось что данный атрибут даже не отправляется на сервис, т.к. SoapClient() юзал не отредактированный WSDL, а из кеша. Чтобы очистить кеш, нужно прописать:
ini_set("soap.wsdl_cache_enabled", 0);
или
$client = new SoapClient('http://somewhere.com/?wsdl', array('cache_wsdl' => 0));

Читать далее