Lokalni service.wsdl lahko še vedno povzroči, da SoapClient med gradnjo pridobi oddaljene dokumente. Če prvo datoteko naredite lokalno, odstranite le to prvo prenašanje:

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

Začnite pri prvem neuspešnem pridobivanju, pred prvim poslovnim klicem SOAP. Naštejte vsak uvoz WSDL in vsako lokacijo sheme, vključno z dokumenti, na katere se ti nato sklicujejo. Ohranite osnovni URL ali pot, ki se uporablja za razrešitev vsake relativne reference. Ločite notranje gostitelje od virov, ki resnično potrebujejo zunanji proxy.

Jasen proxy SoapClient lahko pošlje notranjo shemo prek posrednika z drugačnim pogledom na DNS ali drugačno politiko dostopa. Spremenljivka no_proxy na ravni procesa ne dokazuje, da jo ta pot nalaganja bere. Uporabite možnosti, dokumentirane za vašo različico PHP; poimenovanje možnosti po okoljski spremenljivki ne ustvari izbirnika za vsak uvoz.

Če želite definicije v celoti namestiti lokalno, pridobite odobrene različice celotnega nabora odvisnosti, posodobite ustrezne lokacije uvoza na lokalni paket in ohranite njihove osnove relativnih poti. Različice teh dokumentov vzdržujte skupaj, da nov korenski WSDL ne bo uporabljal zastarelih tipov.

Ne dotikajte se identifikatorjev imenskih prostorov. Lahko so videti kot URL-ji, vendar določajo besedišče sheme, namesto da bi nalagalniku povedali, od kod naj pridobi datoteko. Njihova zamenjava lahko spremeni pogodbo storitve.

Znova preizkusite gradnjo z zabeleženim stanjem predpomnilnika: predpomnjene definicije lahko skrijejo manjkajočo odvisnost na enem stroju. Prepis URL-ja storitve velja v poznejši fazi, prilagojeni __doRequest() pa obravnava izmenjavo SOAP; za nobenega od njiju ne smemo domnevati, da prepisuje ali prestreže vse prenose shem med gradnjo.

Sorodni članki