Lokalni service.wsdl i dalje može naterati SoapClient da tokom izgradnje dohvati udaljene dokumente. Činjenje prvog fajla lokalnim uklanja samo to prvo preuzimanje:

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

Počnite od prvog neuspelog dohvatanja, pre prvog SOAP poslovnog poziva. Popišite svaki WSDL uvoz i lokaciju šeme, uključujući dokumente na koje oni dalje upućuju. Zadržite osnovni URL ili putanju koja se koristi za razrešavanje svake relativne reference. Odvojite interne hostove od resursa kojima zaista treba spoljni proxy.

Eksplicitni SoapClient proxy može poslati internu šemu kroz posrednika sa drugačijim pogledom na DNS ili pravilom pristupa. Varijabla no_proxy na nivou procesa ne dokazuje da je ovaj put učitavanja čita. Koristite opcije dokumentovane za vašu PHP verziju; imenovanje opcije po varijabli okruženja ne stvara selektor za svaki uvoz.

Da biste definicije u potpunosti postavili lokalno, nabavite odobrene verzije celog skupa zavisnosti, ažurirajte relevantne lokacije uvoza na lokalni paket i sačuvajte njihove osnove relativnih putanja. Verzionirajte te dokumente zajedno kako novi korenski WSDL ne bi koristio zastarele tipove.

Ne dirajte identifikatore imenskih prostora. Mogu izgledati kao URL-ovi, ali identifikuju rečnik šeme umesto da kažu učitavaču odakle da preuzme fajl. Njihova zamena može promeniti ugovor servisa.

Ponovo testirajte izgradnju sa zabeleženim stanjem keša: keširane definicije mogu sakriti nedostajuću zavisnost na jednoj mašini. Nadjačavanje URL-a servisa primenjuje se u kasnijoj fazi, a prilagođeni __doRequest() obrađuje SOAP razmenu; ni za jedno se ne sme pretpostaviti da prepisuje ili presreće sva preuzimanja šeme u vreme izgradnje.

Povezani članci