En lokal service.wsdl kan fortsatt få SoapClient til å hente eksterne dokumenter under konstruksjonen. Å gjøre den første filen lokal fjerner bare den første nedlastingen:

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

Start ved den første mislykkede hentingen, før det første SOAP-forretningskallet. List opp hver WSDL-import og hver schema-location, inkludert dokumentene de igjen refererer til. Behold basis-URL-en eller stien som brukes til å løse hver relativ referanse. Skill interne verter fra ressurser som faktisk trenger den eksterne proxyen.

En eksplisitt SoapClient-proxy kan sende et internt schema gjennom en mellommann med et annet DNS-syn eller en annen tilgangspolicy. En no_proxy-variabel på prosessnivå beviser ikke at denne innlastingsveien leser den. Bruk alternativene som er dokumentert for PHP-versjonen din; å navngi et alternativ etter en miljøvariabel lager ikke en velger per import.

For å rulle ut definisjonene helt lokalt, skaff de godkjente versjonene av hele avhengighetssettet, oppdater de aktuelle importplasseringene til den lokale pakken og behold deres relative stibaser. Versjoner disse dokumentene sammen slik at en ny rot-WSDL ikke bruker utdaterte typer.

La namespace-identifikatorer være. De kan se ut som URL-er, men de identifiserer schema-ordforrådet i stedet for å fortelle innlasteren hvor en fil skal hentes. Å erstatte dem kan endre tjenestekontrakten.

Test konstruksjonen på nytt med cache-tilstanden registrert: hurtigbufrede definisjoner kan skjule en manglende avhengighet på én maskin. En overstyring av tjeneste-URL-en gjelder i en senere fase, og en tilpasset __doRequest() håndterer SOAP-utvekslingen; ingen av dem bør antas å skrive om eller avskjære alle schema-nedlastinger under konstruksjonen.

Relaterte artikler