Локален service.wsdl сè уште може да го натера SoapClient да презема далечински документи за време на изградбата. Правењето на првата датотека локална го отстранува само тоа прво преземање:

local service.wsdl
  → internal Common.xsd
  → external Types.xsd
       → another schema location

Започнете од првото неуспешно преземање, пред првиот деловен SOAP повик. Наведете го секој WSDL увоз и секоја schema location, вклучувајќи ги документите на кои тие пак упатуваат. Зачувајте ја основната URL или патеката што се користи за решавање на секоја релативна референца. Одвојте внатрешни host-ови од ресурси на кои навистина им треба надворешниот proxy.

Експлицитен SoapClient proxy може да испрати внатрешна schema преку посредник со различен DNS поглед или политика за пристап. Променливата no_proxy на ниво на процес не докажува дека овој пат за вчитување ја чита. Користете ги опциите документирани за вашата PHP верзија; именувањето на опција по променлива на околината не создава избирач за секој увоз.

За целосно локално распоредување на дефинициите, набавете ги одобрените верзии на целиот сет зависности, ажурирајте ги соодветните места за увоз на локалниот пакет и зачувајте ги нивните основи на релативни патеки. Верзионирајте ги тие документи заедно за новиот коренски WSDL да не користи застарени типови.

Не ги допирајте namespace идентификаторите. Може да изгледаат како URL-а, но го идентификуваат речникот на schema наместо да му кажат на вчитувачот од каде да земе датотека. Нивната замена може да го промени договорот за услугата.

Повторно тестирајте ја изградбата со запишана состојба на кешот: кешираните дефиниции можат да скријат зависност што недостасува на една машина. Замената на URL-то на услугата се применува во подоцнежна фаза, а прилагоден __doRequest() го обработува SOAP разменувањето; за ниту едно не треба да се претпостави дека ги препишува или пресретнува сите преземања на schema при изградба.

Поврзани статии