Lokalni service.wsdl i dalje može natjerati 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 neuspjelog dohvatanja, prije prvog SOAP poslovnog poziva. Popišite svaki WSDL uvoz i lokaciju sheme, uključujući dokumente na koje oni dalje upućuju. Zadržite osnovni URL ili putanju koja se koristi za razrješavanje svake relativne reference. Odvojite interne hostove od resursa kojima zaista treba vanjski proxy.

Eksplicitni SoapClient proxy može poslati internu shemu kroz posrednika s 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 cijelog skupa zavisnosti, ažurirajte relevantne lokacije uvoza na lokalni paket i sačuvajte njihove osnove relativnih putanja. Verzionirajte te dokumente zajedno kako novi korijenski WSDL ne bi koristio zastarjele tipove.

Ne dirajte identifikatore imenskih prostora. Mogu izgledati kao URL-ovi, ali identificiraju rječnik sheme umjesto da kažu učitavaču odakle da preuzme fajl. Njihova zamjena može promijeniti ugovor servisa.

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

Povezani članci